Une promesse est une "chose" qui représente le "éventuelle" des résultats d'une opération, pour ainsi dire. Le point à noter ici est que, il effectue l'abstraction des détails de quand quelque chose arrive et vous permet de vous concentrer sur ce qui devrait se produire après qu'il se passe quelque chose. Ce sera résultat en propre, maintenable code où au lieu d'avoir un rappel à l'intérieur d'un rappel à l'intérieur d'un rappel, votre code va ressembler à quelque chose comme:
var request = new Promise(function(resolve, reject) {
//do an ajax call here. or a database request or whatever.
//depending on its results, either call resolve(value) or reject(error)
//where value is the thing which the operation's successful execution returns and
//error is the thing which the operation's failure returns.
});
request.then(function successHandler(result) {
//do something with the result
}, function failureHandler(error) {
//handle
});
Les promesses' spec états qu'une promesse de
then
méthode doit retourner une nouvelle promesse qui s'accomplit quand le successHandler ou la failureHandler de rappel est terminé. Cela signifie que vous pouvez à la chaîne promesses lorsque vous avez un ensemble de tâches asynchrones qui doivent être effectuées et être assuré que la séquence des opérations est garantie comme si vous aviez utilisé des rappels. Donc au lieu de passer un rappel à l'intérieur d'un rappel à l'intérieur d'un rappel, le code avec enchaîné promesses ressemble:
var doStuff = new Promise(firstAsyncFunction);
doStuff
.then(secondAsyncFunction) //returns a promise
.then(thirdAsyncFunction); //returns a promise
Pour en savoir plus sur les promesses, et pourquoi ils sont super cool, la caisse Dominique du blog : http://domenic.me/2012/10/14/youre-missing-the-point-of-promises/