Rumah >hujung hadapan web >tutorial js >Bagaimana untuk Menjeda Fungsi Node.js untuk Panggilan Balik dalam Pengaturcaraan Didorong Peristiwa?

Bagaimana untuk Menjeda Fungsi Node.js untuk Panggilan Balik dalam Pengaturcaraan Didorong Peristiwa?

Linda Hamilton
Linda Hamiltonasal
2024-10-21 17:58:02445semak imbas

How to Pause Node.js Functions for Callbacks in Event-Driven Programming?

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn