Maison >interface Web >js tutoriel >Pourquoi « l'attente n'est valide que dans la fonction asynchrone » se produit-il en JavaScript ?

Pourquoi « l'attente n'est valide que dans la fonction asynchrone » se produit-il en JavaScript ?

Linda Hamilton
Linda Hamiltonoriginal
2025-01-03 19:16:41545parcourir

Why Does

Erreur « await n'est valable que dans la fonction asynchrone »

En JavaScript, le mot-clé wait n'est valide que dans une fonction asynchrone. Cette erreur se produit lorsque vous essayez d'utiliser wait dans une fonction non asynchrone.

Considérez l'extrait de code suivant :

// lib/helper.js
var myfunction = async function (x, y) {
  return [x, y];
};
exports.myfunction = myfunction;

Ce code définit une fonction asynchrone appelée myfunction. Dans un fichier séparé, le code suivant est écrit :

// anotherFile.js
var helper = require('./helper.js');

var start = function (a, b) {
  const result = await helper.myfunction('test', 'test');
};
exports.start = start;

Ce code accède à mafonction à partir du fichier d'assistance. Cependant, il tente d'invoquer wait dans la fonction de démarrage non asynchrone, ce qui génère l'erreur « l'attente n'est valide que dans la fonction asynchrone ».

Pour résoudre ce problème, la fonction de démarrage doit être rendue asynchrone :

async function start(a, b) {
  const result = await helper.myfunction('test', 'test');

  console.log(result);
}

En résumé, l'utilisation de wait nécessite que la fonction englobante soit une fonction asynchrone. Lorsque l'erreur spécifie « wait n'est valide que dans la fonction asynchrone », assurez-vous que la fonction dans laquelle wait est appelée est correctement marquée comme async.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn