目录
概念
异步函数就是通过 async 修饰的函数, async await 是ES8规范新增的, 这两个关键字的作用就是让我们的异步代码更加简洁, 接下来就来玩一玩.
async
async 关键字用来修饰异步函数, 放在异步函数前即可, 通过async修饰的函数他的返回值必定是一个promise对象, 如果返回值不是promise对象(包括没有返回值)内部都会经过Promise,reslove()将结果包装成promise对象返回,
async function sync1() {
return 1
}
async function sync2() {
}
async function sync3() {
return Promise.reject(new Error('返回了错误状态的promise'));
}
const res1 = sync1()
const res2 = sync2()
const res3 = sync3().catch(err => console.log(err))
console.log(res1, res2, res3);
await
await 关键字只能使用在 anync 修饰的异步函数中,await之后一般会跟一个实现thenable接口的对象 常规的数值和字符串也可以, await会阻塞函数内后面的代码的执行直到await修饰的promise成功, await之后的代码才会恢复执行
await 跟一个实现了then方法的对象
const callback = (val) => {
return val
}
con