Pour l'utiliser await, son contexte d'exécution doit être asyncdans la nature
Comme il l'a dit, vous devez avant tout définir la nature de votre situation executing contextoù vous êtes prêt à effectuer awaitune tâche.
Mettez juste asyncavant la fndéclaration dans laquelle votre asynctâche s'exécutera.
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')
}
Explication:
Dans votre question, vous importez un methodqui est asynchronousdans la nature et s'exécutera en parallèle. Mais là où vous essayez d'exécuter cette asyncméthode, c'est à l'intérieur d'un autre execution contextque vous devez définir asyncpour l'utiliser await.
var helper = require('./helper.js');
var start = async function(a,b){
....
const result = await helper.myfunction('test','test');
}
exports.start = start;
Je me demande ce qui se passe sous le capot
awaitconsomme des méthodes / fonctions promises / futures / de retour de tâches et asyncmarque une méthode / fonction comme capable d'utiliser await.
Aussi, si vous êtes familier avec promises, awaitfait en fait le même processus de promesse / résolution. Créer une chaîne de promesse et exécuter votre prochaine tâche en resolverappel.
Pour plus d'informations, vous pouvez vous référer à MDN DOCS .
awaitcela ne peut être utilisé que dans uneasyncfonction. Autrement dit,awaitrend une fonction asynchrone, elle doit donc être déclarée comme telle.