Question : les fonctions asynchrones renvoient-elles implicitement des promesses ?
En JavaScript, les fonctions asynchrones sont déclarées à l'aide du mot-clé async et sont souvent considérées comme automatiquement promesses de retour. Cependant, cela soulève une incohérence potentielle : lorsqu'une valeur non promise est explicitement renvoyée, la fonction semble envelopper la valeur dans une promesse.
Réponse : toutes les fonctions asynchrones renvoient des promesses
Le comportement observé est correct : toutes les fonctions asynchrones renvoient implicitement des promesses. Plus précisément :
Exemple :
async function increment(num) { return num + 1; } // Logs 4, as the returned promise resolves to 4. increment(3).then(num => console.log(num));
Comportement d'emballage :
Ce comportement d'emballage est unique aux fonctions du générateur. Par exemple, les fonctions génératrices renvoient également des promesses, mais d'une manière différente :
function* foo() { return 'test'; } // Logs an object, not "test". console.log(foo()); // Logs 'test' by explicitly calling .next() on the generator function. console.log(foo().next().value);
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!