Node.js: Seruan Fungsi dan Menunggu Respons Panggilan Balik
Dalam Node.js, membangunkan kod tak segerak yang bergantung pada panggilan balik memberikan cabaran apabila cuba mendapatkan semula data daripada panggilan balik. Artikel ini meneroka senario di mana fungsi direka untuk melaksanakan panggilan API dan mengembalikan respons daripada lambda panggil balik. Walau bagaimanapun, pelaksanaan awal menghadapi kesukaran dan gagal mencapai hasil yang diharapkan.
Coretan kod yang disediakan menunjukkan fungsi dipermudahkan yang menggunakan API dan mengembalikan respons dalam lambda panggil balik. Walau bagaimanapun, pendekatan ini cacat kerana fungsi kembali serta-merta, menyebabkan respons panggil balik tidak dapat diakses.
Percubaan untuk menunggu secara paksa respons panggilan balik menggunakan gelung, seperti yang ditunjukkan dalam coretan kod kedua, tetap tidak berjaya. Ini kerana gelung peristiwa dalam Node.js terus memproses tugas lain sementara menunggu panggilan balik.
Untuk menangani isu ini dengan berkesan, Node.js menggunakan model dipacu peristiwa. Pendekatan yang betul melibatkan penerimaan parameter panggil balik dalam fungsi. Apabila pengiraan selesai, panggilan balik dipanggil, membenarkan fungsi panggilan mengendalikan hasilnya.
Contohnya:
<code class="javascript">function(query, callback) { myApi.exec('SomeCommand', function(response) { callback(response); }); }</code>
Dalam fungsi yang disemak ini, panggilan balik berfungsi sebagai mekanisme untuk "kembalikan" jawapan kepada pemanggil asal. Fungsi ini digunakan seperti berikut:
<code class="javascript">myFunction(query, function(returnValue) { // Use the result within the callback instead of relying on a direct return });</code>
Dengan menerima paradigma dipacu peristiwa Node.js, pembangun boleh mengelakkan kesulitan menunggu panggilan balik dan memanfaatkan pendekatan yang lebih cekap untuk mengendalikan kod tak segerak.
Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Data Panggilan Balik dalam Kod Asynchronous Node.js?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!