async、await 优缺点

async、await 优缺点并发

async 和 await 相比直接使用 Promise 来讲,优点在于处理 then 的调用链,可以更清晰准确的写出代码。缺点在于滥用 await 可能会致使性能问题,由于 await 会阻塞代码,也许以后的异步代码并不依赖于前者,但仍然须要等待前者完成,致使代码失去了并发性异步

下面来看一个使用 await 的代码。async

  • 首先函数b 先执行,在执行到 await 10 以前变量 a 仍是 0,由于在 await 内部实现了 generators ,generators 会保留堆栈中东西,因此这时候 a = 0 被保存了下来
  • 由于 await 是异步操做,遇到await就会当即返回一个pending状态的Promise对象,暂时返回执行代码的控制权,使得函数外的代码得以继续执行,因此会先执行 console.log('1', a)
  • 这时候同步代码执行完毕,开始执行异步代码,将保存下来的值拿出来使用,这时候 a = 10
  • 而后后面就是常规执行代码了
相关文章
相关标签/搜索