美文网首页
es6~9之async/await

es6~9之async/await

作者: 沐雨芝录 | 来源:发表于2019-03-26 16:15 被阅读0次

前言

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不行。

相关文章

网友评论

      本文标题:es6~9之async/await

      本文链接:https://www.haomeiwen.com/subject/zoogvqtx.html