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

Linda Hamilton
Lepaskan: 2024-10-21 17:58:02
asal
354 orang telah melayarinya

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;
  });
}
Salin selepas log masuk

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;
}
Salin selepas log masuk

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);
  });
}
Salin selepas log masuk

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.
});
Salin selepas log masuk

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!

sumber:php
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!