1.执行async函数,返回的是Promise对象,即使返回的是普通数据类型也会被Promise重新封装
2.执行await获得的结果其实相当于执行Promise的then方法
3.利用try...catch实际相当于执行Promise的catch方法
async function fn1() {
return 100//相当于return Promise.resolve(100)
}
!(async function () {
const p1 = Promise.resolve(300)
const data = await p1 //相当于Promise then
console.log('data', data)
})()
!(async function () {
const p4 = Promise.reject('err1')//rejected状态
try{
const res =await p4
} catch (ex) {
console.error(ex)
}
})()
async 函数,是 Generator 函数的语法糖
async函数的优点
1.使用async结构更加清晰,Promise中的then方法链式调用结构很复杂
2.使用async便于调试,使用Promise是无法进行断点操作