如何在不知道首先调度哪个ACTION_A和ACTION_B的情况下等待ACTION_A和ACTION_B?
我试过,const result = yield take([ACTION_A, ACTION_B])但result只是第一个调度的动作,而我需要两个动作.
我试过const {a, b} = yield race({a: yield take(ACTION_A), b: yield take(ACTION_B)})但如果a定义了,b不是.
记住,我不能简单地yield take(ACTION_A); yield take(ACTION_B)因为我不知道哪一个先出现.
你可以使用all帮助器.all创建一个效果描述,指示中间件并行运行多个效果并等待所有这些效果完成.
您的代码可能如下所示:
function* mySaga() {
const [actionA, actionB] = yield all([
take(ACTION_A),
take(ACTION_B),
])
}
Run Code Online (Sandbox Code Playgroud)
我希望我的回答很有帮助.
| 归档时间: |
|
| 查看次数: |
2433 次 |
| 最近记录: |