在另一个函数中从.map调用redux-saga生成器函数



我试图从updateDatayield callgetdata生成器函数,但该方法没有被调用。

function* getdata(action) { 
try {
let response = yield call(doCall, {
url: 'https://.....',
method: GET,
});
}catch(e){
}
} 
function* updateData(action) { 
try {
let array = ['1', '2', '3'];
array.map(function* (i){
return yield call(getdata, { ...action });  // this is not 
// calling getdata generator method
});
}catch(e){
}
}

并非每个生成器都是传奇。为了让redux-saga库处理它,需要以某种方式将其传递到库中(如使用callfork)。在这种情况下,你可以使用数组map方法来创建一个效果数组,然后你可以使用all来执行。

function* updateData(action) { 
try {
let array = ['1', '2', '3'];
const effectList = array.map(i => call(getdata, { ...action }));
const result = yield all(effectList);
}catch(e){
}
}

最新更新