我有一个异步操作fetchTasks
给出了一个任务列表,并发送每个任务的请求(这些可能需要或可能不需要一段时间才能完成)。我希望我的前端一次只能发送5个请求。由于许多组件具有Ajax功能,因此我决定在Redux商店中实现请求计数器。该值被称为fetchCount
,并被许多组件用于查看他们是否想允许用户发送请求。如何Redux连接存储到异步Redux操作
现在问题是fetchTasks
可以在任务列表中获得5个以上的任务。我通过首先发送请求来处理这个问题,直到fetchCount
达到0,然后每当收到服务器对提取的响应时递归调用fetchTasks
。
function fetchTasks(taskList){
return dispatch => {
while(taskList.length > 0 && fetchCount > 0){ // <-- I need fetchCount to be up to date with the store
decrementFetchCount(); //a redux action
let task = taskList.pop();
$ajax({
url: `/do/${task}`,
success:(data)=>{
processData(data); // redux action
incrementFetchCount(); // a redux action
dispatch(fetchTasks(taskList));
}
});
}
}
}
我的问题是,我需要fetchTasks
要注意的fetchCount
的价值在其运行的任意时间点。我想连接到商店是关键,但我不知道如何将一个功能连接到商店。这就是问题所在。另外,这味道。如果某人有另一种方法来实现他们想要提出的建议,那也是一个有效的答案。
如果你想让它由用户来对抗操纵的安全根本不这样做在客户端。在客户端上执行的任何代码都可以由用户任意更改。 – Timo
我知道,但我并不担心,这只是一个内部工具。虽然 –