4、redux源码解析 - dispatch改造 - 识别Promise

我们知道Promise是用来解决异步问题的,同样地,如果dispatch能够接收一个Promise对象,
我们就能处理Redux架构下的异步问题。具体思路是dispatch接收Promise对象,在这个Promise
对象resolve(状态发生改变)后,我们使用原始的dispatch进行触发。这样的思路同redux-thunk中间件的思想一样。

const createResolve = function(store){
    const rawDispatch = store.dispatch;
    return (action) => {
//这里是判断action是否是一个thenable对象,如果是就代表这是一个promise对象
if( typeof(action.then) === 'function' ){ return action.then(rawDispatch); } else { return rawDispatch(action); } } }

猜你喜欢

转载自www.cnblogs.com/hellolol/p/11311622.html