Heim > Web-Frontend > js-Tutorial > Wie löse ich das Warten und Blockieren von Rückrufen in Node.js?

Wie löse ich das Warten und Blockieren von Rückrufen in Node.js?

Susan Sarandon
Freigeben: 2024-10-21 17:50:44
Original
683 Leute haben es durchsucht

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

Warten auf Rückrufe in Node.js

Node.js fördert als ereignisgesteuerte Plattform die asynchrone Programmierung, bei der Funktionen Aktionen initiieren und ohne Wartezeit weiter ausführen können für den Abschluss der Aktion. Es kann jedoch Szenarien geben, in denen Sie möchten, dass eine Funktion auf den Aufruf eines Rückrufs wartet, bevor sie einen Wert zurückgibt.

Betrachten Sie den folgenden Codeausschnitt, der darauf abzielt, einen synchronen Aufruf mithilfe der Methode myApi.exec durchzuführen akzeptiert einen Rückruf zur Bearbeitung der Antwort:

function(query) {
  myApi.exec('SomeCommand', function(response) {
    return response;
  });
}
Nach dem Login kopieren

Während die Absicht darin besteht, die vom Rückruf empfangene Antwort zurückzugeben, funktioniert dieser Code nicht ordnungsgemäß und wird sofort zurückgegeben, bevor der Rückruf ausgeführt wird.

Um dieses Problem zu beheben, verwendet Node.js den ereignisgesteuerten Ansatz, bei dem Funktionen nicht für Rückrufergebnisse blockieren sollten. Stattdessen sollten sie einen Rückrufparameter akzeptieren und der Aufrufer sollte eine Funktion zur Verarbeitung des Ergebnisses bereitstellen.

Die richtige Art, diese Funktion zu schreiben, ist:

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

Auf diese Weise ist die Funktion wird nicht blockierend und gibt keinen Wert zurück, bis der Rückruf ausgeführt wird. Der Aufrufer sollte es wie folgt verwenden:

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

Dieser ereignisgesteuerte Ansatz fördert die asynchrone Programmierung und verhindert Blockierungen, was für eine effiziente Leistung in Node.js-Anwendungen entscheidend ist.

Das obige ist der detaillierte Inhalt vonWie löse ich das Warten und Blockieren von Rückrufen in Node.js?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage