链式结构
1、基础结构
let p1 = Promise.resolve('a');
p1.then(res => {
// doSomething...
}).catch(err > {
// doSomething...
})
2、在then之后或者catch之后返回其他值
let a1 = Promise.resolve('我是成功的Promise');
a1.then(res => {
return res + ',我又加了一段文字';
}).then(res => {
console.log( res ); // 我是成功的Promise,我又加了一段文字
})
let a2 = Promise.reject('我是失败的Promise');
a2.catch(err => {
throw new Error('我抛出了一个Error');
}).catch(err => {
console.log(err); // Error: 我抛出了一个Error
})
3、用来解决回调地狱
let promise = new Promise((resolve, reject) => {
console.log(11111);
resolve("a");
});
promise.then(res => {
console.log(res)
return new Promise((resolve, reject) => {
resolve("b");
})
}).then(res => {
console.log(res);
return new Promise((resolve, reject) => {
resolve("c");
})
}).then(res => {
console.log(res);
}).catch(err => {
console.log(err);
})
网友评论