promise的作用
store.dispatch()的返回值是啥(是promise对象还是非 promise对象),取决你调用的那个函数具体是怎样的 1.该函数是否用async声明,(如果是,则返回的是个promise对象) 2.该函数的返回值是否是 return new Promise(()=>{}),(如果是,则返回的是个promise对象)
第一种情况,说明 store.dispatch()并不需要dispatch()执行后的返回值,但是它需要dispatch()执行后,接着做其他操作, 比方说这里的next...,故FETCH_PERMISSION函数需要async声明,当然这里async声明也是为了await 使用。就是说,这里async有两个用处,一个是为了处理接口异步问题(整成同步),另一个是为了dispatch()执行后,继续执行then的回调。
第二种情况, 那如果不想将FETCH_PERMISSION函数声明为async,有没有办法处理,有的,请看下面 (效果一样,只是实现方式不一样,并且store.dispatch().then能取到FETCH_PERMISSION函数里resolve传过来的值)
第三种情况, 该情况完全等价于第二种情况,store.dispatch().then也能取到FETCH_PERMISSION函数里resolve传过来的值),仅用做学习,实际项目不建议FETCH_PERMISSION函数这样写。
相关文章参考,挺不错的 blog.csdn.net/sinat_40770…