async/await是什么?有哪些优势?

2021-10-16  本文已影响0人  沃德麻鸭

从目前的内部实现来说async其实就是 Generator函数的语法糖。它基于 Promise,并与所有现存的基于Promise 的 API 兼容。

1.async 关键字

①async 关键字用于声明⼀个异步函数(如 async function asyncTask1() {...})

②async 会⾃动将常规函数转换成 Promise,返回值也是⼀个 Promise 对象

③async 函数内部可以使⽤ await

2.await 关键字

① await 用于等待异步的功能执⾏完毕 var result = await someAsyncCall()

②await 放置在 Promise 调⽤之前,会强制async函数中其他代码等待,直到 Promise 完成并返回结果

③await 只能与 Promise ⼀起使⽤

④await 只能在 async 函数内部使⽤

相较于 Promise,async/await有何优势?

1.同步化代码的阅读体验(Promise 虽然摆脱了回调地狱,但 then 链式调⽤的阅读负担还是存在的)

2.和同步代码更一致的错误处理方式( async/await 可以⽤成熟的 try/catch 做处理,比 Promise 的错误捕获更简洁直观)

3.调试时的阅读性, 也相对更友好

上一篇 下一篇

猜你喜欢

热点阅读