如何取消所有的效果

时间:2017-11-20 11:37:57

标签: reactjs redux-saga

dva效果中的

//有用;当下一个动作到来时,最后一个动作将被取消;

    getsome: [function*({ payload }, { call, put, select, all }){
      yield call request1;
      yield call request2;
    }, { type: 'takeLatest'}],

//但如果使用全部收益,则不会取消最后一个操作

    getsome: [function*({ payload }, { call, put, select, all }){
      yield all([call(request1), call(request2)]);
    }, { type: 'takeLatest'}],

1 个答案:

答案 0 :(得分:1)

简单地说,你不能这样做,

yield all,将同时启动所有通话,但不会一个接一个地启动。

因此,如果您想要取消某些请求,您需要单独执行,或者生成一组yield,并逐个启动它们。