Para usar await, seu contexto de execução precisa estar asyncna natureza
Como disse, você precisa definir a natureza de executing contextonde você está disposto a awaituma tarefa antes de qualquer coisa.
Basta colocar asyncantes da fndeclaração na qual sua asynctarefa será executada.
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')
}
Explicação:
Na sua pergunta, você está importando um methodque está asynchronousna natureza e será executado em paralelo. Mas onde você está tentando executar esse asyncmétodo está dentro de um diferente execution contextque você precisa definir asyncpara usar await.
var helper = require('./helper.js');
var start = async function(a,b){
....
const result = await helper.myfunction('test','test');
}
exports.start = start;
Querendo saber o que está acontecendo sob o capô
awaitconsome métodos / funções de promessa / futuro / retorno de tarefa e asyncmarca um método / função como capaz de usar o await.
Além disso, se você estiver familiarizado com o promises, awaitestá realmente fazendo o mesmo processo de promessa / resolução. Criar uma cadeia de promessas e executar a próxima tarefa no resolveretorno de chamada.
Para obter mais informações, você pode consultar o MDN DOCS .
awaitsó pode ser usado dentro de umaasyncfunção. Ou seja,awaittorna uma função assíncrona, por isso deve ser declarada como tal.