javascript - 在 Redux Saga 中使用 map 功能进行 fork

我是 redux-sagas 的初学者,我对以下情况感到困惑。我有一个项目数组,我想为每个项目 fork 相同的方法。所以我正在使用这行代码:

yield items.map(item => fork(loadItemDetails, item));

使用上述代码,永远不会调用loadItemDetails。相反,如果我对每个项目单独调用 fork,如下所示,那么它会按预期工作。

yield fork(loadItemDetails, items[0]);
yield fork(loadItemDetails, items[1]);
yield fork(loadItemDetails, items[2]);

这让我很困惑,我无法弄清楚 map 不起作用的原因。

最佳答案

我遇到了同样的问题。

items.forEach(item => yield fork(loadItemDetails, item));

不会工作,因为您会收到以下错误:

A 'yield' expression is only allowed in a generator body.

为了解决这个问题,我使用了yield all

export function* itemDetailsSage() {
  const { items } = yield take(SET_CART_ITEMS);
  yield all(items.map(item => fork(loadItemDetails, item)));
}

https://stackoverflow.com/questions/60854406/

相关文章:

date - 如何在 DART(Flutter)中舍入最接近 30 分钟间隔的日期时间?

python - 有没有办法从图形图像中提取数据并将其存储在 Excel 工作表或 csv 文件中?

hyperledger-fabric - fabric-chaincode-go 和 fabric-

amazon-web-services - 卷 IOPS、卷吞吐量 (MiB/s) 和网络 (Gbp

azure-devops - 如何将 Yarn 注册表用作 Azure DevOps 工件上游源?

reactjs - react Hook UseEffect 与类名

python - 导入错误 : cannot import name 'CONTRACTION_MA

typescript - 类型 'Readonly

reactjs - 在创建或处理 React 应用程序时,我是否需要始终连接到互联网?

node.js - 从 lambda 向 sns 主题发布消息