„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie gehe ich mit der asynchronen Callback-Vervollständigung in Node.js um?

Wie gehe ich mit der asynchronen Callback-Vervollständigung in Node.js um?

Veröffentlicht am 03.11.2024
Durchsuche:184

How to Handle Asynchronous Callback Completion in Node.js?

Asynchrone Rückrufverarbeitung in Node.js

In Node.js ist es beim Umgang mit asynchronen Rückrufen wichtig, die grundsätzlich nicht blockierende Natur der Plattform zu verstehen . Dieser Artikel befasst sich mit einer häufigen Herausforderung: Wie lässt man eine Funktion auf den Abschluss eines Rückrufs warten?

Betrachten Sie die folgende vereinfachte Funktion:

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

Das Ziel besteht darin, myApi.exec aufzurufen und die im Rückruf empfangene Antwort zurückzugeben. Dieser Code kehrt jedoch sofort zurück, wodurch er unwirksam wird.

Die ereignisgesteuerte Lösung

Die ereignisgesteuerte Architektur von Node.js schreibt vor, dass die „gute“ Methode zum Umgang mit asynchronen Rückrufen nicht warten. Stattdessen sollten Funktionen einen Rückrufparameter akzeptieren, der nach Abschluss des Vorgangs aufgerufen wird. Der Aufrufer sollte keinen herkömmlichen „Rückgabewert“ erwarten, sondern vielmehr einen Rückruf bereitstellen, um das Ergebnis zu verarbeiten.

function(query, callback) {
  myApi.exec('SomeCommand', function(response) {
    // additional processing...

    callback(response); // This "returns" the value to the caller
  });
}

Verwendung:

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

Bei diesem Ansatz blockiert die Funktion nicht und ermöglicht der Ereignisschleife, mit der Verarbeitung anderer Aufgaben fortzufahren. Wenn der Rückruf aufgerufen wird, verarbeitet die bereitgestellte Funktion das Ergebnis asynchron.

Freigabeerklärung Dieser Artikel wird unter folgender Adresse abgedruckt: 1729504094 Bei Verstößen wenden Sie sich bitte an [email protected], um ihn zu löschen
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3