在下面的yield调用中,我需要标记每个结果。在https://redux-saga.js.org/docs/api/链接中,有一个示例,但是由于我在此处使用map,因此无法与之相关。我要在这里使用的标签是从另一个数组获得的。因此,对于标签数组的每个元素,都应该有一个yield调用。
我想使用标签,以便与哪个项目相关联?另外,我不希望yield call
在一个请求失败后立即引发错误,我想让yield call
等到所有调用完成后再引发任何错误。如何实现这些目标?如何从每次通话的结果中使用该标签?
const apiCall = async (
client: ServiceRootClient,
item: itemReq
): Promise<any> => {
const results = await client
.(some unrelated stuff)
.execute();
return results;
};
export labelArray = {
id: string
}
export item = {
attribute1: string;
attribute2: string;
attribute3: string;
}
const items : item[] = [{
attribute1: "bal.blah..",
attribute2: "bal.blah..",
attribute3: "bal.blah.."
}, {
attribute1: "bal.blah..",
attribute2: "bal.blah..",
attribute3: "bal.blah.."
}];
const labelArr : labelArray[] = [
{
id: "1st item"
},
{
id: "2nd item"
}
];
const result = yield all([id: // id is from labelArr
items.map(item => call(apiCall, action.metadata.client, item))
]);
预先感谢