3 回答
TA贡献1828条经验 获得超3个赞
感觉这种情况可以直接使用 promise-middleware 中间件,可以直接这样写:
// 假设你有两个 action 发送请求:fetchInfo, fetchDetail
dispatch(fetchInfo())
.then((action) => {
// action.payload 就是 fetchInfo 的请求数据
return dispatch(fetchDetail());
})
.then((action) => {
// action.payload 就是 fetchDetail 的请求数据
})
TA贡献1815条经验 获得超10个赞
function createTodo (todo) {
return (dispatch) => {
return fetch('/todos/create', {})
.then(result => {
dispatch({type: 'CREATED', result})
})
}
}
function getTodo (id) {
return (dispatch) => {
return fetch(`/todos/${id}`, {})
.then(result => {
dispatch({type: 'LOADED', result})
})
}
}
也可以createTodo().then(if(state==='成功!') getTodo())
由于then无论成功失败都会执行。fetch 尿性。所以dispatch后需要判断你改变的state满足了需求,说明createTodo 执行成功了,就执行下一个
这种情况当两个方法不在同一文件中,或者还会跟随者其他的操作的时候用
- 3 回答
- 0 关注
- 890 浏览
添加回答
举报