gpt4 book ai didi

javascript - 如何采取通过阻塞调用调度的多个操作

转载 作者:行者123 更新时间:2023-12-04 20:26:45 25 4
gpt4 key购买 nike

我有一个正在听 Action 的传奇。
当这个 Action 被调度时,它会执行一个阻塞调用。

问题是同时调度了很多 Action (相同的 Action ),而我的传奇不能采取所有的 Action 。但我需要同步处理每个 Action 。

我知道这是 redux-saga 文档中的一个已知问题:My Saga is missing dispatched actions

但事实是我不能使用 fork ,因为我真的需要在处理新的调用之前结束之前的调用。

这是我的代码:

export function* readProducts() {
while (true) {
const {
payload: { tags },
} = yield take(RFID__ADD_PRODUCT);

// sequential add of each item
for (const tag of tags) {
yield call(addProductViaRfid, tag);
}
}
}

有没有人有办法解决吗 ?

最佳答案

您可以创建缓冲操作 channel 并从中执行操作。

export function* readProducts() {
const addProductRequests = yield actionChannel(RFID__ADD_PRODUCT);
while (true) {
const {
payload: { tags },
} = yield take(addProductRequests);

// sequential add of each item
for (const tag of tags) {
yield call(addProductViaRfid, tag);
}
}
}

关于javascript - 如何采取通过阻塞调用调度的多个操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58973428/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com