當用戶第一次點擊搜索按鈕時,它會像它應該的那樣作業,并且需要大約 30 秒來獲取所有資料,所以如果用戶決定使用新的搜索詞再次單擊搜索按鈕,它會變得一團糟,因為之前的異步回圈不是完成了。請幫助找到終止先前呼叫堆疊并重新啟動行程而不繼續先前回圈的解決方案。
searchButton.addEventListener("click", (e) => {
e.preventDefault();
getPrice(data);
}
async function getPrice(data) {
for (singleResult of data) {
await fetchWeb(Title)
}
}
uj5u.com熱心網友回復:
使用全域點擊計數器:
let calls = 0;
searchButton.addEventListener("click", (e) => {
e.preventDefault();
getPrice(data, calls);
}
async function getPrice(data, id) {
for (singleResult of data) {
if (id !== calls) break;
// ^^^^^^^^^^^^^^^^^^^^^^^^
await fetchWeb(Title)
}
}
一旦calls發生變化,當前活動的回圈就會停止。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/353718.html
標籤:javascript for循环 异步 异步等待 消除
上一篇:發送機器人名稱而不是用戶不和諧
下一篇:檢查用戶是否是服務器成員
