简单粗暴实现redux的thunk和promise中间件
文章地址 异步处理我们使用
改造 dispatch基于我们之前实现的简单 有时候看源码总能感觉到作者对代码逻辑处理的很优雅,以及对于功能的可扩展性把握的很好,但是往往这些优美的代码,理解起来需要很多其他方面的知识基础,这也是很多人看源码困难很大的原因。我们这里对与 加入 Thunk 能力... const dispatch1 = store.dispatch store.dispatch = arg => { if (typeof arg === 'function') return arg(store.dispatch,getState) dispatch1(arg) } ... 这里逻辑异常简单,先把原来的 加入处理 Promise 能力其实上面的 ... const dispatch2 = store.dispatch store.dispatch = action => { if (isPromise(action.payload)) { const { type,payload,params } = action dispatch2({ type: `${type}_PENDDING`,params }) payload.then( resolve => { dispatch2({ type: `${type}_SUCCESS`,content: resolve,params }) },reject => { dispatch2({ type: `${type}_ERROR`,content: reject,params }) } ) } else { dispatch2(action) } } ... 我们规定 测试和思考我们现在可以在项目(reacts-ggsddu)中分别去 但是反观对 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |