promise的作用(self)

130 阅读1分钟

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的回调。

8bff554857291ff5b1f4fba7427673c9.jpg

842ed0da1b0b23bb4cff2939946ab24a.jpg

第二种情况, 那如果不想将FETCH_PERMISSION函数声明为async,有没有办法处理,有的,请看下面 (效果一样,只是实现方式不一样,并且store.dispatch().then能取到FETCH_PERMISSION函数里resolve传过来的值)

11a8dcc850049aaeaabccdd074779229.jpg

939b4627aff444c12dc7346bc95bc3d1.jpg

第三种情况, 该情况完全等价于第二种情况,store.dispatch().then也能取到FETCH_PERMISSION函数里resolve传过来的值),仅用做学习,实际项目不建议FETCH_PERMISSION函数这样写。

e3f7d86a23d4138e41fe6011e17cc62f.jpg

aebecf512c021ade98996df3fbae38c3.jpg

相关文章参考,挺不错的 blog.csdn.net/sinat_40770…