0
在我的傳奇中,我調用了一個異步函數並將它傳遞給一個回調函數。我傳遞迴調的原因是因爲它可以從異步函數中調用幾次。Redux Saga - 在異步回調中調用「yield yield」
如何從異步函數內多次調用的回調函數中調用「yield put」。
在我的傳奇中,我調用了一個異步函數並將它傳遞給一個回調函數。我傳遞迴調的原因是因爲它可以從異步函數中調用幾次。Redux Saga - 在異步回調中調用「yield yield」
如何從異步函數內多次調用的回調函數中調用「yield put」。
正如您已經注意到的那樣,您的生成器函數的嵌套函數中無法使用yield
。相反,您可以將回調風格異步函數轉換爲承諾,並使用call effect。
function* generator() {
const results = yield call(function() {
return new Promise(function(resolve, reject) {
const results = [];
asyncFunction(function(result) {
if (async function is done) { resolve(results) }
else { results.push(result) }
});
});
});
yield put(action(results));
}
這是一個共同的模式,但是當asyncFunction已經完成了你最棘手的部分將被知道。它需要一些信號來表明它最後一次調用了回調函數。