Per essere utilizzato await, il contesto di esecuzione deve essere asyncnella natura
Come detto, devi definire la natura del tuo luogo in executing contextcui sei disposto a awaitsvolgere un compito prima di ogni altra cosa.
Basta mettere asyncprima della fndichiarazione in cui asyncverrà eseguita l'attività.
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')
}
Spiegazione:
Nella tua domanda, stai importando un methodche è asynchronousin natura e verrà eseguito in parallelo. Ma dove stai cercando di eseguire quel asyncmetodo è all'interno di un diverso execution contextche devi definire asyncper usare await.
var helper = require('./helper.js');
var start = async function(a,b){
....
const result = await helper.myfunction('test','test');
}
exports.start = start;
Chiedendosi cosa sta succedendo sotto il cofano
awaitconsuma metodi / funzioni di ritorno di promesse / futuro / attività e asynccontrassegna un metodo / funzione come in grado di utilizzare await.
Inoltre, se hai familiarità promises, awaitsta effettivamente facendo lo stesso processo di promessa / risoluzione. Crea una catena di promesse e ti esegue il prossimo compito in resolvecallback.
Per maggiori informazioni puoi fare riferimento a MDN DOCS .
awaitpuò essere utilizzato solo all'interno di unaasyncfunzione. Cioè,awaitrende una funzione asincrona, quindi deve essere dichiarata come tale.