Promise - 是否可以強制取消Promise
在這種情況下,用戶正在執行預先輸入搜索,每次擊鍵都會觸發一個新的後端呼叫。隨著用戶輸入速度加快,較舊的請求變得無關緊要,需要取消。
ES6 中的 Promise,就目前而言,不支援開箱即用的取消。然而,我們正在進行透過 AbortController 引入取消功能的工作,AbortController 是一種跨平台原語,可以取消網路請求等非同步操作。
使用 AbortController
作為一種現代方法,AbortController 提供了一個訊號可用於取消傳回 Promise 的函數的物件。語法如下所示:
<code class="javascript">async function somethingIWantToCancel({ signal } = {}) { // Use the signal object to manually adapt code for cancellation support const onAbort = (e) => { // Handle cancellation logic here }; signal.addEventListener('abort', onAbort, { once: true }); try { const response = await fetch('...', { signal }); } catch (e) { if (e.name === 'AbortError') { // Deal with cancellation in caller } else { throw e; } } finally { signal.removeEventListener('abort', onAbort); } }</code>
在此範例中,somethingIWantToCancel 函數會採用訊號參數,該參數是 AbortController 的實例。 signal.addEventListener 偵聽器為 abort 事件註冊事件處理程序,該事件在操作取消時觸發。 finally 區塊可確保操作完成時刪除事件偵聽器。
替代方案
如果 AbortController 不是一個選項,另一種方法是使用第三方函式庫,例如 Bluebird,它提供取消功能。
另一個選擇是使用取消令牌。這涉及到將一個函數傳遞給可以呼叫以取消請求的方法。
結論
雖然 ES6 Promise 沒有原生取消支持,但 AbortController 和其他替代方案提供了取消非同步操作的方法在現代 JavaScript 中。對於較舊的場景,使用取消令牌或第三方程式庫仍然可以提供解決方案。
以上是如何取消 JavaScript 中的預輸入搜尋承諾?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

JavaScript字符串替換方法詳解及常見問題解答 本文將探討兩種在JavaScript中替換字符串字符的方法:在JavaScript代碼內部替換和在網頁HTML內部替換。 在JavaScript代碼內部替換字符串 最直接的方法是使用replace()方法: str = str.replace("find","replace"); 該方法僅替換第一個匹配項。要替換所有匹配項,需使用正則表達式並添加全局標誌g: str = str.replace(/fi

因此,在這裡,您準備好了解所有稱為Ajax的東西。但是,到底是什麼? AJAX一詞是指用於創建動態,交互式Web內容的一系列寬鬆的技術。 Ajax一詞,最初由Jesse J創造

本文討論了在瀏覽器中優化JavaScript性能的策略,重點是減少執行時間並最大程度地減少對頁面負載速度的影響。

本文討論了使用瀏覽器開發人員工具的有效JavaScript調試,專注於設置斷點,使用控制台和分析性能。

將矩陣電影特效帶入你的網頁!這是一個基於著名電影《黑客帝國》的酷炫jQuery插件。該插件模擬了電影中經典的綠色字符特效,只需選擇一張圖片,插件就會將其轉換為充滿數字字符的矩陣風格畫面。快來試試吧,非常有趣! 工作原理 插件將圖片加載到畫布上,讀取像素和顏色值: data = ctx.getImageData(x, y, settings.grainSize, settings.grainSize).data 插件巧妙地讀取圖片的矩形區域,並利用jQuery計算每個區域的平均顏色。然後,使用

本文將引導您使用jQuery庫創建一個簡單的圖片輪播。我們將使用bxSlider庫,它基於jQuery構建,並提供許多配置選項來設置輪播。 如今,圖片輪播已成為網站必備功能——一圖胜千言! 決定使用圖片輪播後,下一個問題是如何創建它。首先,您需要收集高質量、高分辨率的圖片。 接下來,您需要使用HTML和一些JavaScript代碼來創建圖片輪播。網絡上有很多庫可以幫助您以不同的方式創建輪播。我們將使用開源的bxSlider庫。 bxSlider庫支持響應式設計,因此使用此庫構建的輪播可以適應任何

數據集對於構建API模型和各種業務流程至關重要。這就是為什麼導入和導出CSV是經常需要的功能。在本教程中,您將學習如何在Angular中下載和導入CSV文件


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

Dreamweaver Mac版
視覺化網頁開發工具

PhpStorm Mac 版本
最新(2018.2.1 )專業的PHP整合開發工具

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境

SublimeText3漢化版
中文版,非常好用