我在React中使用redux-saga和redux库来处理我的项目。
我来解释一下我的问题:在一个时刻,前端应用程序将发送n个相同的 Saga “CUSTOM_ACTION”操作(预期行为)。现在,我希望只有一个API调用,即使操作是多个。采取最新的选项不起作用。
这是我的 Saga 代码:function* testWorker() {
// call api only once
个}
function* testWatcher() {
yield takeLatest("CUSTOM_ACTION", testWorker);
}
使用此配置,我有n个API调用,每个操作一个。
如何解决我的问题?
提前感谢所有能帮助我的人
1条答案
按热度按时间o8x7eapl1#
答案有点取决于你所说的“在一瞬间”是什么意思。
如果你的意思是一次只运行一个请求,你可以使用
takeLeading
效果代替takeLatest
。它将启动第一个调度的操作的请求,并忽略所有其他操作,直到 Saga 完成。如果你指的是某个特定的时间,你可以使用
debounce
效果,它将在给定的时间内只运行一个 Saga (一旦时间结束,最后一个动作被调度)。您可以使用
0
在很短的时间内运行它。如果您只是想限制创建的请求数量,则还会出现
throttle
效应。