• 异步调用 callback hell
  • Promise then catch 链式调用,但也是基于回调函数
  • async/await是同步语法,彻底消灭回调函数
  1. // 使用 async 匿名函数
  2. // 应为使用 await 必须使用 async
  3. (async function() {
  4. const img1 = await loadImg(src)
  5. })()

注意

  1. const src = 'xxxx'
  2. // 由于第一行没有写分号,所以第三行的匿名函数要写一个【叹号】,否则会当作第一行的延续, 即'xxxx'()(),从而导致报错
  3. !(async function() {
  4. const img1 = await loadImg(src)
  5. })()

async/await 和 promise 的关系

  • async/await是消灭异步回调的终极武器
  • 但和 promise 并不互斥
  • 两者相辅相成
  • 执行async,返回的是 promise 对象
  • await 相当于 promise 的 then
  • try…catch 可以捕获异常,代替了 promise 的 catch