Dans le domaine de la programmation JavaScript, les promesses servent de mécanisme puissant pour gérer les opérations asynchrones. Cependant, la question se pose souvent: est-il possible de forcer la promesse de la promesse?
ES6 Promises: un statut quo
Malheureusement, dans l'état actuel de ES6, les promesses ne soutiennent pas nativement l'incitation. En effet La spécification du langage n'a pas encore finalisé ces sémantiques.
Les fonctions interrompues, pas les promesses
au lieu d'un mécanisme d'annulation approprié pour les promesses, le Whatwg (un organisme de normalisation) a introduit la promotion abortère, une promotion transversale primitive que les plans qui permettent la canne. En utilisant AbortController, on peut interrompre la fonction sous-jacente plutôt que la promesse elle-même.
La bibliothèque Bluebird Promise
pour les applications où la cance native est primordiale, les bibliothèques tierces comme Bluebird offrent des solutions robustes. Bluebird étend les promesses avec un large éventail de fonctionnalités, y compris les capacités d'annulation.
Approche alternative: Tokens d'annulation
Une autre alternative consiste à implémenter un modèle de jeton d'annulation. Un jeton d'annulation est une fonction qui peut être appelée pour abandonner une promesse correspondante. En passant le jeton d'annulation comme argument au constructeur de la promesse, nous pouvons annuler la promesse en invoquant la fonction d'annulation du jeton. La dernière fonction prend une fonction productrice de promesses comme son argument et renvoie une fonction qui annule toutes les promesses précédentes avant d'invoquer la dernière. Pour des capacités d'annulation plus étendues, des bibliothèques tierces comme Bluebird ou une implémentation personnalisée à l'aide de jetons d'annulation offrent des alternatives viables.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3