async

async是一个异步函数的关键字,该函数内有个特殊之处就是可以在它内部使用await关键字,而普通函数中是不可以。

await关键字有什么特点呢?

  1. 通常使用await是后面会跟上一个表达式,这个表达式会返回一个Promise
  2. 那么await会等到Promise的状态变成fulfilled状态,之后继续执行异步函数
  3. 如果await后面是一个普通的值,那么会直接返回这个值
async function foo() {
  const res1 = await requestData()
  return res1
}

foo().then(res=>{
console.log(res);
}).catch(err=>{
console.log(err);
})


async和promise的区别

  1. promise是ES6,async/await是ES7
  2. async/await相对于promise来讲,写法更加优雅
  3. reject状态:
    1)promise错误可以通过catch来捕捉,建议尾部捕获错误,
    2)async/await既可以用.then又可以用try-catch捕捉

Q.E.D.