JavaScript Promise 是現代 Web 開發的重要組成部分。它們使我們能夠乾淨有效地處理非同步操作。然而,promise 的表現往往令人驚訝,尤其是與事件循環和微任務結合使用時。本文是由兩部分組成的系列文章的第 1 部分,我們將解決基於 Promise 的棘手輸出問題,以提高您的 JavaScript 技能。
在本系列結束時,您將更深入地了解 Promise 如何與 JavaScript 事件循環互動。讓我們深入探討前五個棘手問題!
console.log("Start"); const promise1 = new Promise((resolve) => { console.log("Promise started"); resolve("Resolved"); }); promise1.then((result) => { console.log(result); }); console.log("End");
Start Promise started End Resolved
const promise2 = new Promise((resolve) => { resolve("Resolved 1"); }); promise2.then((result) => { console.log(result); return new Promise((resolve) => { resolve("Resolved 2"); }); }).then((result) => { console.log(result); });
Resolved 1 Resolved 2
const promise3 = Promise.resolve(); promise3 .then(() => { console.log("Then 1"); }) .then(() => { console.log("Then 2"); }) .then(() => { console.log("Then 3"); });
Then 1 Then 2 Then 3
const promise4 = new Promise((_, reject) => { reject("Error occurred"); }); promise4 .then(() => { console.log("This will not run"); }) .catch((error) => { console.log("Caught:", error); }) .then(() => { console.log("This will still run"); });
Caught: Error occurred This will still run
async function asyncFunc() { console.log("Async function started"); return "Async result"; } asyncFunc().then((result) => { console.log(result); }); console.log("Synchronous log");
Async function started Synchronous log Async result
在第一部分中,我們介紹了 JavaScript Promise 的基礎知識,並探討了 Promise 解析、連結和拒絕處理的工作原理。了解事件循環和微任務佇列對於掌握 Promise 至關重要,這些問題強調了這一點。請繼續關注第 2 部分,我們將深入探討更進階的 Promise 行為,包括 Promise.race、Promise.all 等等!
重點:
請繼續關注本系列的第 2 部分,我們將在其中解決更高級的 Promise 技巧!
以上是掌握 JavaScript Promise:每個開發人員都必須知道的棘手輸出問題! (第 1 部分)的詳細內容。更多資訊請關注PHP中文網其他相關文章!