Rumah >hujung hadapan web >tutorial js >Bagaimana untuk Menjeda Fungsi Node.js untuk Panggilan Balik dalam Pengaturcaraan Didorong Peristiwa?
Pelaksanaan Fungsi Didorong Peristiwa dalam Node.js: Menunggu Panggilan Balik
Dalam konteks pengaturcaraan dipacu peristiwa, selalunya perlu untuk laksanakan rutin yang bergantung pada penyiapan tugas tak segerak. Dalam Node.js, panggilan balik kerap digunakan untuk mengendalikan tugasan tersebut. Walau bagaimanapun, terdapat keadaan di mana ia adalah wajar untuk "menjeda" fungsi sehingga panggilan balik telah dipanggil.
Pertimbangkan fungsi yang dipermudahkan:
function(query) { myApi.exec('SomeCommand', function(response) { return response; }); }
Fungsi ini bertujuan untuk mengembalikan respons daripada panggilan myApi.exec(). Walau bagaimanapun, pelaksanaan tidak berfungsi seperti yang dimaksudkan kerana Node.js segera kembali sebelum panggilan balik dilaksanakan.
Percubaan naif untuk menyelesaikan isu ini mungkin melibatkan penggunaan gelung sementara:
function(query) { var r; myApi.exec('SomeCommand', function(response) { r = response; }); while (!r) {} return r; }
Pendekatan ini tidak berkesan, kerana ia memperkenalkan penyekatan kod dan menghalang sifat terdorong peristiwa Node.js.
Cara Node.js: Terima Panggilan Balik
The penyelesaian terbaik dalam senario ini adalah untuk memanfaatkan corak panggil balik dan mengelakkan daripada menyekat pelaksanaan. Daripada menunggu nilai pulangan, fungsi anda harus menerima parameter panggil balik yang akan digunakan apabila operasi selesai:
function(query, callback) { myApi.exec('SomeCommand', function(response) { // Do additional processing if necessary... callback(response); }); }
Pendekatan ini membolehkan anda melaksanakan tugas tak segerak tanpa menunggu penyelesaiannya. Pemanggil tidak seharusnya mengharapkan nilai "kembali" dalam erti kata tradisional tetapi menetapkan rutin untuk mengendalikan data yang terhasil:
myFunction(query, function(returnValue) { // Use the return value here. });
Dengan mematuhi corak ini, kod anda kekal tidak menyekat dan dipacu peristiwa , memastikan pelaksanaan yang cekap dalam Node.js.
Atas ialah kandungan terperinci Bagaimana untuk Menjeda Fungsi Node.js untuk Panggilan Balik dalam Pengaturcaraan Didorong Peristiwa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!