我有一個異步操作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
我知道,但我並不擔心,這只是一個內部工具。雖然 –