我想要进行n次api调用,并且我正在做floows
try {
....
yield all(
action.uploadDocsBody.map(u =>
call(uploadDocs, {
...,
}),
),
);
yield put({
type: UPLOADDOCS_COMPLETED,
payload: { statusText: 'Success' },
});
} catch (e) {
yield put({
type: UPLOADDOCS_FAILED,
payload: {
error: true,
},
});
}问题是UPLOADDOCS_COMPLETED只有在完成所有api调用后才会被调用。
我想在每次api调用后生成put,如何使用呢?
发布于 2019-12-31 16:43:50
您可以用另一个生成器包装每个调用,并生成它:
function *foo(u) {
yield call(uploadDocs, {...});
yield put({ type: UPLOADEDDOCS_COMPLETED, .....});
}
yield all(action.uploadDocsBody.map(u => foo(u)))发布于 2019-12-31 16:59:10
function call(uploadDocs,{...},callback){
/// do you task
callback()
}
function *foo(u) {
var put = function({ type: UPLOADEDDOCS_COMPLETED, .....});
yield call(uploadDocs, {...} ,put);
}https://stackoverflow.com/questions/59541172
复制相似问题