Rumah  >  Artikel  >  hujung hadapan web  >  Bagaimana untuk Menyelesaikan Panggilan Balik Menunggu dan Menyekat dalam Node.js?

Bagaimana untuk Menyelesaikan Panggilan Balik Menunggu dan Menyekat dalam Node.js?

Susan Sarandon
Susan Sarandonasal
2024-10-21 17:50:44584semak imbas

How to Solve Callback Waiting and Blocking in Node.js?

Menunggu Panggilan Balik dalam Node.js

Node.js, sebagai platform dipacu peristiwa, menggalakkan pengaturcaraan tak segerak, di mana fungsi boleh memulakan tindakan dan terus melaksanakan tanpa menunggu untuk penyempurnaan tindakan. Walau bagaimanapun, mungkin terdapat senario di mana anda mahu fungsi menunggu panggilan balik dipanggil sebelum mengembalikan nilai.

Pertimbangkan coretan kod berikut yang bertujuan untuk membuat panggilan segerak menggunakan kaedah myApi.exec, yang menerima panggilan balik untuk mengendalikan respons:

function(query) {
  myApi.exec('SomeCommand', function(response) {
    return response;
  });
}

Walaupun niatnya adalah untuk mengembalikan respons yang diterima daripada panggilan balik, kod ini tidak akan berfungsi dengan betul dan akan kembali serta-merta, sebelum panggilan balik dilaksanakan.

Untuk menangani isu ini, Node.js menggunakan pendekatan terdorong peristiwa, di mana fungsi tidak seharusnya menyekat untuk hasil panggilan balik. Sebaliknya, mereka harus menerima parameter panggil balik dan pemanggil harus menyediakan fungsi untuk mengendalikan hasilnya.

Cara yang betul untuk menulis fungsi ini ialah:

function(query, callback) {
  myApi.exec('SomeCommand', function(response) {
    // Additional processing...
    callback(response); // "Returning" the response via the callback
  });
}

Dengan cara ini, fungsi menjadi tidak menyekat dan tidak akan mengembalikan sebarang nilai sehingga panggilan balik dilaksanakan. Pemanggil harus menggunakannya seperti berikut:

myFunction(query, function(returnValue) {
  // Handle the return value here
});

Pendekatan dipacu peristiwa ini menggalakkan pengaturcaraan tak segerak dan menghalang penyekatan, yang penting untuk prestasi cekap dalam aplikasi Node.js.

Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Panggilan Balik Menunggu dan Menyekat dalam Node.js?. 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