我一直认为takeEvery
(或takeLatest
等(正在阻塞,并且由于在其实现(或基本实现(中使用while(true)
,它将与其父级一样长。
然而,我已经把一个基本的例子放在一起,演示了在调用takeEvery
之后立即运行到finally
块的传奇。
import { call, takeEvery } from "redux-saga/effects";
function* handleTest(data: any) {
yield call([console, console.log], data);
}
export function* rootSaga() {
try {
yield takeEvery("test", handleTest);
} finally {
console.log("end");
}
}
https://codesandbox.io/s/pusher-transcriptions-ff7qz?file=/src/rootSaga.ts:0-259
根据官方文档,它没有被阻止https://redux-saga.js.org/docs/api/#blocking--无阻塞