Ich versuche, eine Funktion zu schreiben, die ihren Wert nicht zurückgibt, bis ein Versprechen in der Funktion aufgelöst wurde. Hier ist ein vereinfachtes Beispiel für das, was ich versuche zu tun.Wie warten Sie darauf, einen Wert zurückzugeben, bis das Versprechen gelöst ist?
Es ist eine Funktion, die eine Gruppen-ID anfordert und die Daten für diese Gruppe zurückgibt. Dabei werden auch die Namen der Benutzer in die Datenstruktur eingefügt, um ihre Namen anstelle ihrer Benutzer-ID anzuzeigen. Mein Problem ist, dass es asynchron läuft und die .then Rückrufe überspringt. Bis es zurückkommt g wurde keiner der Callbacks aufgerufen und g.memberNames
ist noch leer. Gibt es eine Möglichkeit, die Funktion so lange warten zu lassen, bis alle Callbacks aufgerufen wurden?
Ich habe eine Menge Zeugs gesehen. Ist das hier notwendig? Es ist höchst unerwünscht, meinem Projekt andere Bibliotheken hinzuzufügen.
Ich denke, der bevorzugte Weg, dies zu tun ist, einen Rückruf an Ihre Funktion übergeben, die, wenn sie bereit genannt werden. –
Es wäre besser, die Idee, einen Wert synchron zurückzugeben, aufzugeben. Ihre Datenbank-API stellt Versprechungen bereit, verwenden Sie sie daher und versuchen Sie nicht, etwas Synchrones zu erreichen. Sie können alles schreiben, was Sie möchten, indem Sie sich an das asynchrone/Versprechen-Muster halten. Es ist wichtig, den Standpunkt zu ändern. – trincot