欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

es6~9之async/await

程序员文章站 2023-12-21 21:38:52
...

前言

async 函数是什么?一句话,它就是 Generator 函数的语法糖。

简单研究原理

async function fn() {
  var a = 1
  await getApi();
  var b = 2
  return b
}

等同于:

function fn() {
  return Promise.resolve().then(function () {
    var a = 1
    return getApi();
  }).then(function () {
    var b = 2
    return b;
  });
}

遇到async函数就生成一个Promise.resolve(),遇到await就生成.then进行回调。这就是对async,await最简单理解。

优势:

  • 简约
  • try,catch处理错误更方便
  • 解决回调地狱问题
  • 传递中间值更简单
const request = async () => {
    const value1 = await promise1()
    const value2 = await promise2(value1)
    return promise3(value1, value2)
}
  • 报错能告诉我们是哪个函数,定位错误方便,promise就不行。
Error: error at request

*debugger方便,await前都可以打断点,但是promise的then不行。

转载于:https://www.jianshu.com/p/175c35dc1791

上一篇:

下一篇: