Maison >interface Web >js tutoriel >Les fonctions JavaScript asynchrones renvoient-elles toujours des promesses ?
Fonctions asynchrones et retours de promesses implicites
En JavaScript, les fonctions asynchrones marquées par le mot-clé async renvoient implicitement des promesses. Cela est vrai même si vous renvoyez explicitement des valeurs non promises ou si vous ne renvoyez rien du tout.
Emballeur de promesse implicite
Si vous ne renvoyez pas explicitement un promesse, la valeur que vous renvoyez sera automatiquement enveloppée dans une promesse.
async function increment(num) { return num + 1; } // Logs: 4 increment(3).then(num => console.log(num));
Cela signifie que même si la valeur de retour est un nombre, elle sera convertie en un promesse à des fins de traitement asynchrone.
Promesses non emballées
Les promesses se déroulent automatiquement, ce qui signifie que si vous renvoyez une promesse pour une valeur à partir d'une fonction asynchrone, vous recevrez une promesse pour la valeur (pas une promesse pour une promesse pour le value).
async function increment(num) { return defer(() => num + 1); } // Logs: 4 increment(3).then(num => console.log(num));
Comportement incohérent
Le comportement des fonctions asynchrones peut en effet sembler incohérent avec les instructions return traditionnelles, car il diffère lors du renvoi explicite de valeurs non promises. . En effet, les fonctions asynchrones utilisent un type spécial de fonction appelé générateurs, qui ne renvoient pas toujours la même valeur que l'instruction return.
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!