NEWS
Funktion sequentiell abarbeiten
-
Hallo, die callback Funktion funktioniert super - so, jetzt sollte ich aber eine Funktion sequentiell abarbeiten, bekommen ich aber nicht hin - irgendwo stehe ich auf dem Schlauch:
Ich habe folgende, vereinfacht dargestellte, Funktion:
function serverUpdate() { request( { url: 'http://xxxxxxx', json: true }, function (error, response, content){ if (!error && response.statusCode == 200){ ..... } }); }
Die muss ich es anstellen, damit diese Funktion sequentiell abgearbeitet wird.
Vorab vielen Dank...
-
@Baumert
Du willst also ein callback in deine Funktion serverUpdate() einbauen, richtig?Würde es so machen auf die Schnelle. Zum prüfen der Reihenfolge habe ich entsprechende Logs hinzugefügt.
serverUpdate(function(success){ log('Jetzt sind wir im callback von serverUpdate(). Rückmeldung: ' + success); }); function serverUpdate(callback) { log('Funktion serverUpdate() ausgeführt.'); request( { url: 'http://google.de', json: true }, function (error, response, content){ log('Jetzt sind wir im Callback von request()'); if (!error && response.statusCode == 200){ log('request() war erfolgreich, also geben wir true zurück.'); return callback(true); } else { log('request() war nicht erfolgreich, also geben wir false zurück.'); return callback(false); } }); }
Ausgabe:
19:22:24.006 info javascript.0 (4621) script.js.A-Test.Callback: Funktion serverUpdate() ausgeführt. 19:22:24.243 info javascript.0 (4621) script.js.A-Test.Callback: Jetzt sind wir im Callback von request() 19:22:24.244 info javascript.0 (4621) script.js.A-Test.Callback: request() war erfolgreich, also geben wir true zurück. 19:22:24.244 info javascript.0 (4621) script.js.A-Test.Callback: Jetzt sind wir im callback von serverUpdate(). Rückmeldung: true
-
@Mic Hallo, super, vielen Dank - werde ich heute Abend gleich mal testen.
-
evtl. noch ne weitere idee.
Wenn der Befehl request ein promise zurückgibt (was es tut, wenn es der originalbefehl von node ist.
dann könnte man einfach ein then dahintersetzenrequest(aller mögliche codezum abruf der daten).then(das was danach kommen soll);
nähere erklerung bei google unter javascript promise