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

Susan Sarandon
Lepaskan: 2024-10-21 17:50:44
asal
583 orang telah melayarinya

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

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

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

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!

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!