Fonctions asynchrones et mot-clé « attendre » : quelle est la cause de l'erreur « l'attente n'est valide que dans la fonction asynchrone » ?
Souvent rencontrée dans codage, l'erreur « l'attente n'est valable que dans la fonction asynchrone » se produit lorsque vous tentez d'utiliser le mot-clé « attendre » en dehors d'une fonction « asynchrone » fonction, comme son homonyme l'indique. Pour comprendre ce problème, examinons le code que vous avez fourni.
Dans votre fichier helper.js, vous avez défini une fonction "async" nommée "myfunction", qui utilise correctement le mot-clé "async" et renvoie un tableau de variables. Cependant, l'erreur ne vient pas de cette fonction. Il se trouve dans la fonction « start » dans un autre fichier.
La fonction « start » n'est pas déclarée comme « async », ce qui la rend inéligible à l'utilisation du mot-clé « wait ». Pour remédier à cela, vous devez convertir "start" en fonction "async", comme démontré dans le code modifié ci-dessous :
const start = async function(a, b) { const result = await helper.myfunction('test', 'test'); }
En faisant de "start" une fonction "async", vous lui permettez de suspendez l'exécution et attendez la fin de la promesse "myfunction" avant de continuer.
N'oubliez pas que le mot-clé "await" ne peut être utilisé que dans les fonctions "async", alors déclarez toujours vos fonctions avec le Mot-clé "async" lorsque vous avez l'intention d'utiliser "wait" en leur sein. Cela garantit une bonne exécution du code asynchrone, évitant ainsi l'erreur « l'attente n'est valable que dans la fonction asynchrone ».
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!