Comment puis-je gérer les erreurs avec des promesses?
Comme un nœud de programmeur. J'ai l'habitude d'utiliser "nodebacks" pour la gestion des erreurs dans mon code:
myFn(param, function(err, data) {
if (err){
//error handling logic
}
else {
//business logic
}
});
Lors de l'écriture de cette fonction, je peux faire quelque chose comme:
var myFn = function(param, callback){
var calc = doSomeCalculation(param);
if(calc === null) { //or some other way to detect error
callback(new Error("error with calculation"), null);
}
...
someAsyncOp(calcN,function(err, finalResult){
if(err) return callback(err, null);
callback(null, finalResult); //the error is null to signal no error
});
};
Comment pourrais-je faire ce genre d'erreur de manipulation avec des promesses?
OriginalL'auteur Benjamin Gruenbaum | 2014-02-15
Vous devez vous connecter pour publier un commentaire.
Règle de base
Chaque fois que vous avez un doute sur la façon de faire quelque chose avec des promesses - pensez à la version synchrone.
Cela, au moins, me semble beaucoup plus clair qu'un rappel avec un premier paramètre qui est parfois
null
.Les promesses façon est presque toujours très similaire à la version synchrone du problème:
Où myFn ressemblerait à quelque chose comme lorsque l'on travaille avec des rappels:
De travail avec des rappels/nodebacks
C'est seulement quelque chose que vous devez faire lorsque vous travaillez avec des rappels, lorsque l'on travaille avec des promesses, il est beaucoup plus simple, et vous pouvez le faire:
En outre, lorsque l'on travaille à l'intérieur de la promesse de chaînes, vous obtenez jeter de sécurité:
Remarque, certaines bibliothèques, comme Bluebird , RSVP et Q offrir sucre syntaxique automatique et promisification de méthodes de sorte que vous ont rarement à utiliser
new Promise
vous-même.Aussi, pensez à lire cette et que pour en savoir plus sur la promesse d'erreur de manipulation.
OriginalL'auteur Benjamin Gruenbaum