Introduction
Dans ce laboratoire, nous allons apprendre à convertir une fonction asynchrone pour qu'elle renvoie une promesse à l'aide de la fonction promisify. Cela nous permettra d'écrire un code plus propre et plus lisible en évitant les fonctions de rappel. Nous explorerons également l'utilisation de la curry et de l'opérateur rest en JavaScript.
Fonction promisify
Pour convertir une fonction asynchrone pour qu'elle renvoie une promesse, suivez ces étapes :
- Ouvrez le Terminal/SSH et tapez
nodepour commencer à pratiquer la programmation. - Utilisez la curry pour renvoyer une fonction qui renvoie une
Promisequi appelle la fonction d'origine. - Utilisez l'opérateur rest (
...) pour passer tous les paramètres. - Si vous utilisez Node 8+, vous pouvez utiliser
util.promisify. - Voici un extrait de code d'exemple :
const promisify =
(func) =>
(...args) =>
new Promise((resolve, reject) =>
func(...args, (err, result) => (err ? reject(err) : resolve(result)))
);
- Pour utiliser cette fonction, définissez la fonction asynchrone et passez-la en tant que paramètre à la fonction
promisify. La fonction renvoyée renverra désormais une promesse.
const delay = promisify((d, cb) => setTimeout(cb, d));
delay(2000).then(() => console.log("Hi!")); // La promesse est résolue après 2 s
La fonction delay est un exemple d'une fonction asynchrone qui renvoie désormais une promesse à l'aide de la fonction promisify.
Sommaire
Félicitations ! Vous avez terminé le laboratoire Fonction promisify. Vous pouvez pratiquer d'autres laboratoires sur LabEx pour améliorer vos compétences.