给一段代码,你感受一下
function action1() {
return new Promise(function(resolve, reject) {
// 同步任务的演示
if (Math.random() < 0.5) {
return reject();
}
return resolve();
});
}
function action2() {
return new Promise(function(resolve, reject) {
// 异步任务的演示
superagent
.get('
http://www.baidu.com')
.end(function(err, response) {
if (err) {
// 传递错误信息给 catch(function(err) { ... })
return reject(err);
}
// 将请求信息传递给 then(function(response){ ... })
return resolve(response);
});
});
}
Promise.resolve()
.then(action1);
.then(action2);
.then(function(response) {
// response 就是 action2 的 response
})
.catch(function(err) {
// 如果是 action1 触发的 catch, err 为空
// 如果是 action2 触发的 catch, err 等于 action2 的 err
});
Promise.all([
action1,
action2,
])
.then(function(results) {
// 获取结果
// results[0]
// results[1]
})
.catch()