Para usar await, su contexto de ejecución debe estar asyncen la naturaleza
Como se dijo, debe definir la naturaleza de su executing contextlugar en el que está dispuesto a realizar awaituna tarea antes que nada.
Simplemente coloque asyncantes de la fndeclaración en la que asyncse ejecutará su tarea.
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')
}
Explicación:
En su pregunta, está importando un archivo methodque está asynchronousen la naturaleza y se ejecutará en paralelo. Pero donde está intentando ejecutar ese asyncmétodo es dentro de un diferente execution contextque debe 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;
Preguntándome qué pasa bajo el capó
awaitconsume métodos / funciones de promesa / futuro / devolución de tareas y asyncmarca un método / función como capaz de usar await.
Además, si está familiarizado promises, en awaitrealidad está haciendo el mismo proceso de promesa / resolución. Crea una cadena de promesas y ejecuta su próxima tarea en la resolvedevolución de llamada.
Para obtener más información, puede consultar MDN DOCS .
awaitsolo se puede usar dentro de unaasyncfunción. Es decir,awaithace que una función sea asíncrona, por lo que debe declararse como tal.