异步编程的终极解决方案:因为它摒弃了 回调函数的用法
什么是acync
acync 标志一个函数 形成一个async函数 与普通函数不同 async函数的返回值是一个promise对象
promise对象的结果由async函数执行的返回值决定
什么是await
await右侧的表达式一般是一个promise对象,但是也可以是其它的值 ,
如果是promise对象,await返回的是promise对象成功的值,如果promise返回的是失败的状态,则需要使用 try catch 捕获异常。
async function test(){
let p = new Promise((resolve, reject) => {
// resolve('OK');
reject('Error');
})
//1. 右侧为promise的情况
// let res = await p;
//2. 右侧为其他类型的数据
// let res2 = await 20;
//3. 如果promise是失败的状态
try{
let res3 = await p;
}catch(e){
console.log(e);
}
}
test();
使用的注意点:
await 必须要放在 async函数内 ,async函数中可以不使用await