Aby użyć await, kontekst wykonywania musi mieć asynccharakter
Jak zostało powiedziane, musisz najpierw zdefiniować naturę swojego executing contextmiejsca, w którym jesteś gotów wykonać awaitzadanie.
Wystarczy wstawić asyncprzed fndeklaracją, w której Twoje asynczadanie zostanie wykonane.
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')
}
Wyjaśnienie:
W swoim pytaniu importujesz to, methodco ma asynchronousnaturę i będzie wykonywane równolegle. Ale miejsce, w którym próbujesz wykonać tę asyncmetodę, znajduje się wewnątrz innej, execution contextktórą musisz zdefiniować, asyncaby użyć await.
var helper = require('./helper.js');
var start = async function(a,b){
....
const result = await helper.myfunction('test','test');
}
exports.start = start;
Zastanawiasz się, co się dzieje pod maską
awaitzużywa metody / funkcje zwracające obietnicę / przyszłość / zadania i asyncoznacza metodę / funkcję jako zdolną do używania await.
Również, jeśli jesteś zaznajomiony promises, awaitfaktycznie robi ten sam proces obietnicy / postanowienia. Tworzenie łańcucha obietnic i wykonywanie następnego zadania w resolveoddzwonieniu.
Więcej informacji można znaleźć w MDN DOCS .
awaitmożna go używać tylko wewnątrzasyncfunkcji. Oznacza to,awaitże funkcja jest asynchroniczna, więc musi być zadeklarowana jako taka.