Promise
主要用于解决异步回调函数嵌套问题
一、基本使用
let promise = new Promise((resolve, reject) => {
setTimeout(() => {
// 返回错误内容,注意会继续向下执行
// reject('错误内容');
resolve('执行结果');
}, 2000);
});
promise.then(result => {
// then中回调方法被resolve方法调用
console.log(result);
}).catch(error => {
// catch中回调被reject方法调用
console.log(error);
});
二、异步函数同步执行
// 任务1
function p1() {
return new Promise(((resolve, reject) => {
setTimeout(() => {
resolve('p1结果');
}, 1000)
}));
}
// 任务2
function p2() {
return new Promise(((resolve, reject) => {
setTimeout(() => {
resolve('p2结果');
}, 1000)
}));
}
// 任务3
function p3() {
return new Promise(((resolve, reject) => {
setTimeout(() => {
resolve('p3结果');
}, 1000)
}));
}
// 实现异步函数同步执行
p1().then(result => {
console.log(result);
return p2()
}).then(result => {
console.log(result);
return p3()
}).then(result => {
console.log(result);
});