promise练习题,一题看懂,了解原理
console.log(1);
let p1 = new Promise(function(resolve, reject) {
setTimeout(function() {
let flag = true;
if (flag) {
resolve(3);
console.log(2);
} else {
reject('发生了错误哟');
console.log(2);
}
}, 2000);
});
function p2() {
return new Promise(function(resolve, reject) {
resolve(6);
})
}
function p3() {
return new Promise(function(resolve, reject) {
setTimeout(function() {
console.log(8);
}, 1000)
resolve(7);
})
}
p1.then(function(data) {
console.log(data);
console.log(4);
return p2();
}).catch(function(err) {
console.log(err);
console.log(4);
return p2();
}).then(function(data) {
console.log(5);
console.log(data);
return p3();
}).catch(function(err) {
console.log(err);
return p2();
return p3();
}).then(function(data) {
console.log(data);
})
输出结果如下: