Janji JavaScript ialah bahagian penting dalam pembangunan web moden. Mereka membenarkan kami mengendalikan operasi tak segerak dengan bersih dan cekap. Walau bagaimanapun, janji selalunya boleh bertindak dengan cara yang mengejutkan, terutamanya apabila digabungkan dengan gelung acara dan tugasan mikro. Artikel ini ialah Bahagian 1 daripada siri dua bahagian di mana kami menangani soalan keluaran berasaskan janji yang rumit untuk mempertajam kemahiran JavaScript anda.
Menjelang penghujung siri ini, anda akan mendapat pemahaman yang lebih mendalam tentang cara janji berinteraksi dengan gelung acara JavaScript. Mari selami lima soalan rumit pertama!
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
Dalam bahagian pertama ini, kami merangkumi asas janji JavaScript dan meneroka cara penyelesaian janji, rantaian dan pengendalian penolakan berfungsi. Memahami gelung acara dan baris gilir microtask adalah penting untuk menguasai janji, dan soalan ini menyerlahkannya. Nantikan Bahagian 2, di mana kita akan menyelami tingkah laku janji yang lebih maju, termasuk Promise.race, Promise.all dan banyak lagi!
Pengambilan Utama:
Nantikan Bahagian 2 siri ini, di mana kami menangani helah janji yang lebih maju!
Atas ialah kandungan terperinci Kuasai Janji JavaScript: Soalan Output Rumit Setiap Pembangun Mesti Tahu! (Bahagian 1). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!