Sie können die aa()
-Funktion unten ändern, um console.log()
zu verwenden, um want-value
function aa() { setTimeout(function() { return "want-value"; }, 1000); }
nach einer Sekunde auszugeben. Allerdings gibt es solche zusätzliche Anforderungen:
aa()
Die Funktion kann nach Belieben geändert werden, es darf jedoch keine console.log()
Executeconsole.log()
-Anweisung vorhanden sein und es kann kein setTimeout
Paket
Vielleicht ist das eine Interviewfrage, egal. Der Hauptzweck der Frage besteht darin, die Verarbeitung von asynchronen Aufrufausführungsergebnissen zu untersuchen. Da es sich um einen asynchronen Aufruf handelt, ist es für nicht möglich, synchron auf das asynchrone Ergebnis zu warten >
wird häufig zum Simulieren asynchroner Vorgänge verwendet. Zunächst erfolgte die asynchrone Benachrichtigung (Aufruf) der Verarbeitungsergebnisse des Handlers über RückrufesetTimeout()
function aa(callback) { setTimeout(function() { if (typeof callback === "function") { callback("want-value"); } }, 1000); } aa(function(v) { console.log(v); });
function aa() { return new Promise(resolve => { setTimeout(function() { resolve("want-value"); }, 1000); }); } aa().then(v => console.log(v));
function aa() { return new Promise(resolve => { setTimeout(function() { resolve("want-value"); }, 1000); }); } async function main() { const v = await aa(); console.log(v); } main();
verwenden, warten Sie asynchron, nachdem Sie auf das asynchrone Ergebnis gewartet haben, und verwenden Sie aa()
, um es zu verarbeiten. await
console.log()
Hier ist zu beachten, dass
-Methode verwendet werden kann. Um await
verwenden zu können, müssen Sie also eine Hauptmethode von async
definieren und diese in der aufrufen globalen Geltungsbereich. Da die Hauptmethode asynchron ist (als asynchron deklariert), wird dieser Satz zuerst ausgeführt, wenn nach dem Aufruf von await
weitere Anweisungen vorhanden sind, z. B. async
. main()
console.log("hello")
Die Async/Await-Syntax macht das Schreiben asynchroner Aufrufe wie das Schreiben von synchronem Code. Beim Schreiben von Code können Sie logische Sprünge vermeiden und das Schreiben vereinfachen. (Referenz: Von der Hölle zum Himmel, Node-Callback ändert sich zu async/await)
Natürlich kann das Definieren von
und das anschließende Aufrufen von mit IIFE gekapselt werden, main()
main()
(async () => { const v = await aa(); console.log(v); })();
Das obige ist der detaillierte Inhalt vonInformationen zu asynchronen Aufrufmethoden von JavaScript. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!