Die Bluebird-Bibliothek scheint automatisch Promise::then
beide als ein Äquivalent von "map" und "flatMap" auf das Versprechen, z. B. siehe dieses Beispiel.Verflachung verspricht in Javascript
var Promise;
Promise = require('bluebird').Promise;
Promise.resolve(1).then(function(x) {
return Promise.resolve(x + 1);
}).then(function(x) {
return console.log(x); // => `2` (not a promise)
});
Promise.resolve(1).then(function(x) {
return x + 1;
}).then(function(x) {
return console.log(x); // => `2`
});
Promise.reject('hi').catch(function(x) {
return Promise.reject('hi2');
}).catch(function(x) {
return console.error(x); // => `hi2` (not a promise)
});
Ist dies ein Vertrag der es6 Promise API? Ich sehe keine Erwähnung dieses Abflachungsverhaltens, beispielsweise here oder here.
Uh, diese Dokumente sind * sehr * spärlich. MSDN erwähnt nicht einmal, dass "dann" ein Versprechen zurückgibt: - / – Bergi