JavaScript dikenali secara meluas sebagai bahasa satu utas. Ini bermakna ia boleh melaksanakan hanya satu keping kod pada satu masa dalam satu susunan. Walau bagaimanapun, keupayaan JavaScript untuk mengendalikan tugas tak segerak dengan cekap adalah salah satu sebab ia berkuasa untuk membina aplikasi interaktif dan responsif.
Dalam artikel ini, kami akan meneroka perbezaan utama antara JavaScript segerak dan tak segerak dengan contoh praktikal.
Kod segerak melaksanakan baris demi baris, satu langkah pada satu masa. Setiap operasi menunggu operasi sebelumnya selesai sebelum beralih ke operasi seterusnya.
console.log("Start"); // A time-consuming operation (like a loop) for (let i = 0; i < 9; i++) { // Simulating a delay } console.log("End");
Output:
Start End
Dalam contoh ini, gelung menyekat pelaksanaan kod. Jika ini adalah aplikasi dunia sebenar, UI akan membeku semasa gelung kerana JavaScript sedang sibuk memprosesnya.
Kod tak segerak membenarkan tugasan tertentu dijalankan di latar belakang, membolehkan program terus melaksanakan tugas lain tanpa menunggu.
JavaScript mencapai ini menggunakan mekanisme seperti:
console.log("Start"); setTimeout(() => { console.log("Timeout completed"); }, 2000); // 2-second delay console.log("End");
Output:
Start End Timeout completed
Di sini, fungsi setTimeout berjalan secara tidak segerak. Ia menjadualkan fungsi panggil balik untuk dilaksanakan selepas 2 saat tetapi tidak menyekat pelaksanaan kod dalam masa yang sama.
Feature | Synchronous | Asynchronous |
---|---|---|
Execution | Executes line by line | Tasks can run in the background |
Blocking | Blocks subsequent code | Non-blocking |
Examples | Loops, standard functions | Callbacks, Promises, Async/Await |
Janji memudahkan untuk mengendalikan operasi tak segerak. Berikut ialah contoh:
console.log("Start"); // A time-consuming operation (like a loop) for (let i = 0; i < 9; i++) { // Simulating a delay } console.log("End");
Output:
Start End
Kata kunci async dan menunggu memudahkan kerja dengan Janji:
console.log("Start"); setTimeout(() => { console.log("Timeout completed"); }, 2000); // 2-second delay console.log("End");
Output:
Start End Timeout completed
Memahami perbezaan antara JavaScript segerak dan tak segerak adalah penting untuk membina aplikasi yang cekap dan tidak menyekat. Gunakan corak tak segerak seperti Promises dan Async/Await untuk memastikan pengalaman pengguna yang lancar.
Jika anda mempunyai sebarang soalan atau contoh untuk dikongsi, sila tinggalkan komen di bawah!
Atas ialah kandungan terperinci JavaScript Synchronous vs Asynchronous Dipermudahkan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!