我们知道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); } } }