Um verwendet zu werden await
, muss der ausführende Kontext async
in der Natur liegen
Wie gesagt, Sie müssen vor allem die Art Ihrer Aufgabe definieren, in der executing context
Sie zu await
einer Aufgabe bereit sind .
Stellen Sie einfach async
vor die fn
Deklaration, in der Ihre async
Aufgabe ausgeführt wird.
var start = async function(a, b) {
// Your async task will execute with await
await foo()
console.log('I will execute after foo get either resolved/rejected')
}
Erläuterung:
In Ihrer Frage importieren Sie eine, method
die asynchronous
in der Natur liegt und parallel ausgeführt wird. Wenn Sie jedoch versuchen, diese async
Methode auszuführen, befindet sich eine andere Methode, execution context
die Sie für die async
Verwendung definieren müssen await
.
var helper = require('./helper.js');
var start = async function(a,b){
....
const result = await helper.myfunction('test','test');
}
exports.start = start;
Ich frage mich, was unter der Haube los ist
await
verbraucht vielversprechende / zukünftige / aufgabenrückgebende Methoden / Funktionen und async
markiert eine Methode / Funktion als wartungsfähig.
Auch wenn Sie sind vertraut mit promises
, await
ist eigentlich den gleichen Prozess der Verheißung / beheben zu tun. Erstellen Sie eine Versprechenskette und führen Sie die nächste Aufgabe im resolve
Rückruf aus.
Weitere Informationen finden Sie unter MDN DOCS .
await
nur innerhalb einerasync
Funktion verwendet werden kann. Das heißt,await
macht eine Funktion asynchron, daher muss sie als solche deklariert werden.