resolve:
- 成功返回
then
- Promise回调函数
await
- 等待Promise回调,阻塞下方代码执行,等待函数执行完毕后继续执行
- 只能在async方法内使用
function testAwait(){
return new Promise(resolve => {
//做一些异步操作
setTimeout(function(){
console.log('success');
resolve('返回');
}, 2000);
});
}
async function tes(){
testAwait().then(result => {
console.log(result)
});
console.log("when?");
}
tes();
//when?
//Promise
//success
//返回
function testAwait(){
return new Promise(resolve => {
//做一些异步操作
setTimeout(function(){
console.log('success');
resolve('返回');
}, 2000);
});
}
async function tes(){
await testAwait().then(result => {
console.log(result)
});
console.log("when?");
}
tes();
//Promise
//success
//返回
//when?
reject
- 失败返回 可以被catch到
catth
- 异常捕捉
function test(a){
return new Promise((resolve,reject) => {
//做一些异步操作
setTimeout(function(){
if(a < 2){
resolve('成功返回' + a);
} else{
reject('失败返回' + a);
}
}, 1000);
});
}
async function tes(){
test(0)
.then(result => {
console.log('firstThen' + result)
return test(1)
})
.then(result => {
console.log('secondThen' + result)
return test(2)
})
.then(result => {
console.log('thirdThen' + result)
})
.catch(res => {
console.log('catch:' + res)
})
}
tes();
//Promise
//firstThen成功返回0
//secondThen成功返回1
//catch:失败返回2