我有个案子要打电话
n
sagas:
function* mainSaga() {
yield all(
someArrayOfIds.map((id) => call(pollSaga, id))
)
}
pollSaga:
function* pollSaga(id) {
yield race([
call(workSaga, id)
take('STOP_ACTION')
])
}
workSaga:
function* workSaga(id) {
while (true) {
yield call(...);
yield delay(...)
}
}
我在这里非常挣扎的是,如何知道所有的民意调查传奇何时结束。正如您在中所看到的
pollSaga
我可以发送
STOP_ACTION
但这是无用的,因为它会停止所有的传奇(我不想一次停止所有的传说)。
我很难在这里正确地解释这个目标,但如果你有经验,你就会明白我的意思。我只想能够区分
pollSaga
呼叫,并能够分别停止每个呼叫,并在所有呼叫完成后以某种方式“倾听”。
也许有办法,如果我派遣
停止操作
只有指定的pollSaga会被取消,而不是全部取消?