等价于 yield take Redux thunks 中的 Redux Saga

Equivalent of a yield take Redux Saga in Redux thunks

我目前正在将代码库中的 sagas 转换为 thunk。

我知道 Sagas 的特定功能,例如 yield putyield call 可以“直接翻译”到 thunk dispatch(...)await fn...

我遇到了 yield take,据我所知,它采取了商店中包含的一组操作,并指示中间件等待来自商店的那些指定操作之一,结果是一个操作对象被派遣了吗?

如果使用 Redux thunk,“等效”是什么?

非常感谢!

传奇示例:

export function* sample() {
    try {
        const response = yield call(api.sample)
        yield put(setData(response.data))
    } catch (error) {
        yield put(setError(error))
    }
}

export function* sampleSaga() {
yield takeEvery( YOUR_TYPE, sample)

}

如果你想把它改成 redux thunk ,你可以这样做:

 export function sample(){
   return (dispatch, getState) => {
     api.sample()
     .then((response)=> dispatch(setData(response.data)))
     .catch(error => Promise.reject(error))
  }
 }