Um verwendet zu werden await, muss der ausführende Kontext asyncin der Natur liegen
Wie gesagt, Sie müssen vor allem die Art Ihrer Aufgabe definieren, in der executing contextSie zu awaiteiner Aufgabe bereit sind .
Stellen Sie einfach asyncvor die fnDeklaration, in der Ihre asyncAufgabe 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, methoddie asynchronousin der Natur liegt und parallel ausgeführt wird. Wenn Sie jedoch versuchen, diese asyncMethode auszuführen, befindet sich eine andere Methode, execution contextdie Sie für die asyncVerwendung 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
awaitverbraucht vielversprechende / zukünftige / aufgabenrückgebende Methoden / Funktionen und asyncmarkiert eine Methode / Funktion als wartungsfähig.
Auch wenn Sie sind vertraut mit promises, awaitist eigentlich den gleichen Prozess der Verheißung / beheben zu tun. Erstellen Sie eine Versprechenskette und führen Sie die nächste Aufgabe im resolveRückruf aus.
Weitere Informationen finden Sie unter MDN DOCS .
awaitnur innerhalb einerasyncFunktion verwendet werden kann. Das heißt,awaitmacht eine Funktion asynchron, daher muss sie als solche deklariert werden.