在Redux Saga中,join和all有什么不同?
function* fetchUserData(userId) {
const postsTask = yield fork(fetchAlbums, userId)
const albumsTask = yield fork(fetchPosts, userId)
yield join([postsTask, albumsTask])
}function* fetchUserData(userId) {
const postsTask = yield fork(fetchAlbums, userId)
const albumsTask = yield fork(fetchPosts, userId)
yield all([postsTask, albumsTask])
}看起来他们两个都只是同步了几个任务。
发布于 2021-08-29 23:13:31
简而言之,一个是“同步”/join,另一个是“异步”/all,
查看文档:
join([...tasks]) =它将任务数组包装在连接效果中,大致相当于yield tasks.map(t => join(t)) - https://redux-saga.js.org/docs/api/#jointask
join将解析为加入的任务的相同结果(成功或错误)。如果加入的任务被取消,则取消也会传播到执行加入效果的Saga。同样,这些加入者的任何潜在调用者也将被取消。
和:
all([...effects]) - parallel effects =创建一个效果描述,指示中间件并行运行多个效果,并等待所有效果完成。它相当于与标准Promise#all - https://redux-saga.js.org/docs/api/#alleffects---parallel-effects相对应的API
https://stackoverflow.com/questions/68976847
复制相似问题