【问题标题】:redux-saga api call response filteringredux-saga api 调用响应过滤
【发布时间】:2023-05-08 21:39:02
【问题描述】:

我正在尝试像这样过滤我的 redux-saga 生成器函数 api 响应。

    function* loadSingleDataAsync(id) {
  console.log('Second Saga Works');
  let wholeData = [];
  let singleData = [];
  agent
    .get(
      `https://pro-api.coinmarketcap.com/v1/cryptocurrency/listings/latest?CMC_PRO_API_KEY=xxx`
    )
    .then((res) => {
      wholeData = [...res.body.data];
      singleData = wholeData.filter((currencie) => currencie.id === id);
    })
    .catch((err) => {
      console.log('--------err', err);
    });
  yield delay(700);
  yield put({ type: 'RECEIVE_SINGLE_API_DATA_ASYNC', singleData });
}

之后我这样称呼它:

 export function* rootSaga() {
  yield all([takeEvery('RECEIVE_API_DATA', loadDataAsync), takeEvery('RECEIVE_SINGLE_API_DATA', loadSingleDataAsync)]);
}

第一个功能有效,但第二个无效,有什么建议吗?

【问题讨论】:

    标签: reactjs redux redux-saga


    【解决方案1】:

    在 saga 中添加 try, catch 可以帮助您了解 saga 链是否由于任何空响应或数据问题而中断。

    【讨论】: