ank*_*t_m 9 reactjs redux redux-saga
我有一个获取API的传奇(A).这与行动(a)联系在一起.我想触发一个动作(b),它在内部调用(a),等待它完成,然后yield
是某些东西.
// saga A -> action_a
function *saga_a(action) {
yield put( ...action1...);
yield call(api, ...params);
yield put( ...action2...);
}
// saga B -> action_b
function *saga_b(action) {
yield put(..action3..)
waitFor -- put(action_a) <------ how to achieve this?
yield put(..action4..)
}
Run Code Online (Sandbox Code Playgroud)
就在这里。您可以使用它take
来实现。
function *saga_b(action) {
...
yield take(action_a) // this will put the saga_b essentially on hold until `action_a` is dispatched
...
}
Run Code Online (Sandbox Code Playgroud)
我在代码库中执行此操作的方法是直接调用其他传奇。不幸的是,它将两者耦合在一起,但由于您需要等待,耦合至少会更加明确。
function *saga_b(action) {
yield put(..action3..)
yield call(saga_a, action_a)
yield put(..action4..)
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4724 次 |
最近记录: |