es6~9之async/await

2019-03-26  本文已影响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最简单理解。

优势:

const request = async () => {
    const value1 = await promise1()
    const value2 = await promise2(value1)
    return promise3(value1, value2)
}
Error: error at request

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

上一篇下一篇

猜你喜欢

热点阅读