Adakah Semua Panggilan Balik JavaScript Asynchronous?
Bertentangan dengan kepercayaan umum, bukan semua panggilan balik JavaScript adalah tak segerak. Sebagai contoh, panggil balik yang digunakan dalam Array#sort dan String#replace dilaksanakan secara serentak.
Panggil Balik Asynchronous
Panggil balik tak segerak ialah yang dilaksanakan kemudian, membenarkan kod lain untuk berjalan serentak. Lazimnya, panggil balik tak segerak melibatkan permintaan sumber luaran (cth., panggilan jQuery AJAX).
Panggilan jQuery AJAX
Fungsi jQuery AJAX boleh serentak dan tak segerak, bergantung pada tetapan bendera "async". Walau bagaimanapun, penyemak imbas biasanya lalai kepada operasi tak segerak untuk objek XMLHttpRequest (digunakan dalam jQuery AJAX).
Asynchronicity in Node.js
Dalam Node.js, asynchronicity diperkenalkan melalui fungsi tertentu seperti fail I/O, process.nextTick, setTimeout dan setInterval. Operasi tak segerak di luar fungsi ini tidak disokong.
Mencipta Fungsi Tak Segerak
Sebelum ECMAScript 6, fungsi tak segerak dalam JavaScript bergantung pada fungsi yang disediakan hos (mis., seterusnya, Tick. Node.js, setTimeout dalam penyemak imbas).
ECMAScript 6 Promises
ECMAScript 6 memperkenalkan janji sebagai konsep peringkat bahasa untuk pengaturcaraan tak segerak. Panggilan balik yang dilampirkan pada janji (melalui kemudian atau tangkapan) sentiasa dipanggil secara tidak segerak, walaupun janji itu telah diselesaikan apabila ia dilampirkan.
Oleh itu, cara terbaik untuk memastikan pelaksanaan panggilan balik tak segerak adalah dengan menggunakan janji dan bukannya langsung panggilan balik.
Atas ialah kandungan terperinci Adakah Panggilan Balik JavaScript Sentiasa Asynchronous?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!