Synchronizität des Rückrufs des Promise-Konstruktors
Im Kontext der Promise-Konstruktion fragen Sie sich möglicherweise, wann der für das Promise bereitgestellte Rückruf ausgeführt wird Konstrukteur. Lassen Sie uns diese Frage im Detail untersuchen.
Bedenken Sie den folgenden Ausschnitt:
function doSomethingAsynchronous() { return new Promise((resolve) => { const result = doSomeWork(); setTimeout(() => { resolve(result); }, 100); }); }
An welchem Punkt wird beim Erstellen dieses Versprechens doSomeWork() aufgerufen?
Gemäß der Gemäß der ECMAScript-Spezifikation wird die Executor-Funktion (der dem Konstruktor bereitgestellte Rückruf) aufgerufen synchron bei der Promise-Konstruktion. Dies bedeutet, dass doSomeWork() sofort ausgeführt wird, wenn das Promise erstellt wird, bevor der Rückruf mit der Ausführung fortfährt. Im MDN heißt es dazu:
Der Executor wird synchron aufgerufen (sobald das Promise erstellt wird) mit den Funktionen „resolveFunc“ und „rejectFunc“ als Argumente.
Die synchrone Natur des Executor-Aufrufs ist durch die Spezifikation garantiert. Diese Garantie ist beispielsweise relevant, wenn mehrere Versprechen unter Verwendung von „all“ oder „race“ erstellt werden, sowie wenn der Executor synchrone Nebenwirkungen hat.
Das obige ist der detaillierte Inhalt vonWann wird der Rückruf des Promise-Konstruktors ausgeführt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!