首頁  >  文章  >  web前端  >  JavaScript 回呼何時異步?

JavaScript 回呼何時異步?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-10-20 11:45:30382瀏覽

When Are JavaScript Callbacks Asynchronous?

JavaScript 回呼:是否非同步?

JavaScript 回呼並非普遍非同步。在某些場景下,例如您提供的 addOne 和 simpleMap 函數的範例,程式碼會同步執行。

瀏覽器中的非同步 JavaScript

基於回呼的 AJAX 函數jQuery 中通常是非同步的,因為它們涉及 XHR (XMLHttpRequest) 請求。預設情況下,瀏覽器中的 XHR 請求是非同步的,允許在處理請求時持續執行腳本。

Node.js 中的非同步JavaScript

在Node.js 中,異步為通常由輸入/輸出(I/O) 操作引起,例如檔案I/ O、process.nextTick、setTimeout 和setInterval。由於與資料庫互動涉及底層 I/O 操作,因此使用 MongoDB/Mongoose 的基於回呼的資料庫呼叫是非同步的。

預定的非同步情況

非同步通常是根深蒂固在環境中。在瀏覽器中,與 XHR 請求關聯的回呼函數本質上是非同步的。在 Node.js 中,與 I/O 操作相關的回呼同樣是異步的。

自訂非同步函數

無需僅依賴特定環境函數,即可實現異步行為透過利用 ES6 承諾。 Promise 提供了用於定義非同步操作的語言層級機制。附加到 Promise 的回調函數(透過 then 和 catch)始終非同步執行,確保 Promise 後面的程式碼不會阻塞。

以上是JavaScript 回呼何時異步?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn