async/await是在Promise之后产生的,它和Promise诞生的目的都是为了解决“回调地狱”,虽然Promise可以解决回调地狱的问题,但是链式调用太多,就会变成另一种回调地狱
1、async
async关键字用在一个函数的前面,用于表示函数是一个异步函数
async function Fun() {
return "hello"
}
Fun().then(res => console.log(res))
console.log("先执行")
输出
这里要注意的是async函数返回的是一个Promise 对象,如果要获取返回值要使用then方法
在async函数中 return就表示Promise中的resolve,而throw就表示Promise中的reject
async function Fun(flag) {
if (flag) {
return flag //这里相当于resolve
} else {
throw flag //这里相当于reject
}
}
console.log(Fun(true))
console.log(Fun(false))
输出