JavaScript 是一種單執行緒語言,這意味著它一次只能做一件事。然而,Web 應用程式通常需要執行從伺服器取得資料等任務,這可能需要一些時間。如果 JavaScript 必須等待每個任務完成才能繼續,那麼您的 Web 應用程式將會變得緩慢且無回應。這就是非同步(async)JavaScript發揮作用的地方。
非同步 JavaScript 允許您的程式碼啟動一個任務,然後在等待該任務完成時繼續執行其他任務。任務完成後,您的程式碼可以返回並處理結果。這有助於保持您的應用程式快速且響應迅速。
同步與非同步:
console.log("Start"); let result = someFunction(); // This might take a while console.log("End");
在同步程式碼中,只有在 someFunction() 完成後才會記錄「End」訊息,這可能會減慢速度。
非同步:任務可以獨立啟動和完成,因此您的程式碼不會陷入等待。例如:
console.log("Start"); setTimeout(() => { console.log("End"); }, 2000);
這裡,「結束」訊息將在 2 秒後記錄,但同時,您的程式碼可以繼續執行其他操作。
回呼:
function fetchData(callback) { setTimeout(() => { let data = "Some data"; callback(data); }, 2000); } fetchData((data) => { console.log(data); // This will log "Some data" after 2 seconds });
承諾:
let promise = new Promise((resolve, reject) => { let success = true; if (success) { resolve("Task completed successfully!"); } else { reject("Task failed!"); } }); promise.then((message) => { console.log(message); }).catch((error) => { console.log(error); });
非同步/等待:
async function fetchData() { try { let data = await someAsyncTask(); console.log(data); } catch (error) { console.error("Error:", error); } }
了解非同步 JavaScript 對於建立響應迅速、高效的 Web 應用程式至關重要,因為它允許您的程式碼執行任務,而不會陷入等待緩慢操作完成的困境。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3