NEWS
[Gelöst] History per script auslesen: Wie warten auf Daten?
-
Hallo,
ich möchte eine Tabelle mit Daten aus der History befüllen.
Dazu frage ich die Daten mitsendTo('history.0', 'getHistory', { id: Ereignisdp, options: { end: Date.now(), count: 20, } }, function (result) { }
ab.
Nun ist meine "Abfüllung" der Daten fertig, bevor ich die Daten von sendTo zurückbekomme. Offenbar läuft das asynchron. Wie kann ich warten, bis ich die Daten bekomme? -
@delphinis
Hab einen Weg gefunden:
Ich fülle meine Daten am Ende der Funktion (noch im callback, anstatt ausserhalb) ab.
Es würde mich trotzdem für andere Fälle interessieren, wie man auf eine Antwort der History warten kann.... -
@delphinis nimm
async function history(){ let result = await sendToAsync('history.0', 'getHistory', { id: Ereignisdp, options: { end: Date.now(), count: 20, } } return result } async function test(){ let result = await history(); mach_was_mit_result(result) } test();
-
@delphinis bitte den geänderten Beitrag beachten, da fehlte noch was Entscheidendes!
-
@delphinis said in History per script auslesen: Wie warten auf Daten?:
sendTo('history.0', 'getHistory', { id: Ereignisdp, options: { end: Date.now(), count: 20, } }, function (result) { // ab hier callback }
Der Befehl sendTo hat 4 Parameter
- Die Adapterinstanz an die was gesendet werden soll
- der Befehl der ausgeführt werden soll
- evtl Parameter
- Eine Callback Funktion die aufgerufen wird, wenn der andere Adapter alles ausgeführt hat.
Daher, wenn ich deine eigene Antwort richtig interpretiere, hast du das schon selbst herausgefunden.
Fastfoot hat noch auf eine weitere Variante von sendTo hingewiesen.
sendToAsync ist die Promise-Version der Funktion. da kann dann mit await darauf gewartet werden. Der Einsatz von promises kann einen Programmablauf klarer darstellen, da ansonsten bei mehreren aufeinander gestaffelten Callback-Funktionen es schnell unübersichtlich wird.