Thư viện bluebird dường như tự động sử dụng Promise::then
cả hai tương đương với "map" và "flatMap" trên lời hứa, ví dụ như xem ví dụ này.Làm phẳng các lời hứa trong 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)
});
Đây có phải là hợp đồng của API Prom6 es6 không? Ví dụ: tôi không đề cập đến hành vi làm phẳng này như ví dụ here hoặc here.
Uh, những tài liệu đó * rất * thưa thớt. MSDN thậm chí không đề cập rằng 'sau đó' trả về một lời hứa: - / – Bergi