Selalunya dalam pembangunan, anda akan menemui istilah "fungsi panggil balik." Fungsi ini berjalan secara tidak segerak, bermakna ia dilaksanakan di luar aliran segerak standard sesuatu program. Tetapi apakah yang secara khusus mencetuskan gelagat tak segerak ini?
Dalam javascript, sintaks fungsi panggil balik tidak menunjukkan tak segerak. Kedua-dua panggilan balik segerak dan tak segerak mempunyai struktur yang serupa.
Satu-satunya cara muktamad untuk menentukan sama ada fungsi memanggil panggilan balik secara serentak atau tidak segerak adalah dengan berunding dokumentasi tersebut. Tanpa dokumentasi, anda juga boleh menjalankan ujian mudah untuk memastikan kelakuannya.
Javascript pada asasnya tidak mempunyai ketaksinkronan terbina dalam. Untuk mencapainya, pembangun mempunyai dua pilihan:
< ;h3>Peranan Gelung Acara
Gelung acara ialah bahagian penting dalam seni bina javascript. Ia bertanggungjawab untuk memulakan pelaksanaan tak segerak dan mengendalikan acara seperti rangkaian I/O. Dengan menggunakan primitif I/O seperti select(), gelung acara menunggu berbilang operasi I/O dengan cekap tanpa membuat utas tambahan.
Apabila operasi I/O selesai, pilih() memberitahu penterjemah. Jurubahasa kemudiannya mengenal pasti panggilan balik yang dikaitkan dengan saluran I/O yang berkaitan dan melaksanakannya. Mekanisme ini juga menyokong kefungsian setTimeout dan setInterval.
Pelayar moden dan Node.js telah berkembang pada acara tersebut model gelung. Mereka menggabungkan benang untuk mengendalikan I/O berasaskan fail. Setelah selesai, urutan ini berkomunikasi dengan gelung acara utama untuk mencetuskan pelaksanaan panggil balik yang sesuai.
Pelaksanaan tak segerak adalah wujud pada gelung acara dan berasaskan utas Pengurusan I/O. Memahami mekanisme asas ini meningkatkan pemahaman seseorang tentang pengaturcaraan tak segerak dalam Javascript dan teknologi yang berkaitan.
Atas ialah kandungan terperinci Bagaimanakah Javascript mencapai tingkah laku tak segerak walaupun tidak mempunyai ketaksegerakan terbina dalam?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!