Aller au contenu
Convertissez vos fonction callback en promise
  1. Blogs/

Convertissez vos fonction callback en promise

·222 mots·2 mins·
Sommaire

Mais qu’est-ce qu’une Promise en Javascript et pourquoi vous devez l’utiliser?
#

Si vous abusez du callback, vous tomberez dans un anti-pattern, “callback hell” vu dans le code des programmeurs qui ne sont pas sages dans les voies de la programmation asynchrone.

getUser(userId, function(err, user){
   getProduct(productId, function(err, product){
      createOrder(user, product, function(err, order){
          ...// Welcome to callback hell
       });
    });
});

L’approche de la promise
#

getUser(userId)
 .then(user => {
   return getProduct(user)
     .then(product => {
       return createOrder(user, wallet, product)
   })
 })
.catch(err => {
  console.log('Woops!')
})

En utilisant l’extrait de code suivant, vous serez en mesure d’utiliser la promise javascript avec des fonctions de style callback.

Vous n’avez besoin d’aucune bibliothèque externe, en fait, vous n’avez besoin que de 13 lignes de code.

// Needs spread operator (... notation)
const promisify = (fn) => {
  return (...args) => {
    return new Promise((resolve, reject)=>{
      fn(...args, function(err, res){
        if(err){
          return reject(err);
        }
        return resolve(res);
      })
    })
  }
}
// Polified version
"use strict";
var promisify = function promisify(fn) {
  return function () {
    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
      args[_key] = arguments[_key];
    }
    return new Promise(function (resolve, reject) {
      fn.apply(undefined, args.concat([function (err, res) {
        if (err) {
          return reject(err);
        }
        return resolve(res);
      }]));
    });
  };
};

Maintenant, allez et “promisify” toutes vos fonctions en callback.

Articles connexes

Automatisez les mises à jour des dépendances
·384 mots·2 mins
Voyons comment automatiser ce processus dans un environnement d’entreprise en supposant que vous ayez un environnement CI/CD et un repo GitHub privé.
Prise en main de PM2, le gestionnaire de processus Node.js
·584 mots·3 mins
Utilisations de PM2 # PM2 a beaucoup d’utilisations, jetons un coup d’oeil à quelques-unes d’entre elles: Redémarrage après un crash: PM2 nous permet de maintenir les processus en cours d’exécution Suivi et gestion des processus à distance: un portail web vous permet de garder un oeil sur les precessus distants et de les gérer.
Loopback 4 - Configuration de la base de données
·2234 mots·11 mins
Cet article va décrire quelques façons de configurer une application LoopBack 4 par rapport à une base de données à travers plusieurs environnements de développement (dev, test et production).