【问题标题】:implement async/await functionality in es6 [duplicate]在 es6 中实现 async/await 功能
【发布时间】:2017-10-10 20:06:51
【问题描述】:

如果需要,您将如何实现 async/await 功能? - 我们谈论的是正常的 JS 语法(ES6),它执行类似 async/await 的操作,当然,不会将其添加到语法中)

【问题讨论】:

  • 什么?使用 async function(){ await someotherasync();} ...
  • 请更具体
  • 你的问题不是很清楚。您在寻找 Promise 功能吗?
  • 我使用产生承诺的生成器函数。然后可以使用 bluebird's Promise.coroutine 之类的东西将这些函数包装到单个 Promise-returning 函数中。你最终得到的东西在语法上几乎与async/await 相同。我的代码仍然使用这种方法,因为 async 还没有(相当)标准化。

标签: javascript


【解决方案1】:

async/awaitES6 Promises 之上的语法糖。 比如像这样使用async/await的程序

async function asyncExample () {
  const foo = await doStuff();
  return foo + 1;
}

等价于 ES6 中的以下程序

function promiseExample () {
  return doStuff().then(foo => foo + 1);
}

标记为async 的函数只返回一个解析为函数返回值的Promise。

【讨论】:

    猜你喜欢
    • 2017-10-02
    • 2021-03-28
    • 1970-01-01
    • 2016-02-26
    • 2019-04-24
    • 2016-02-18
    • 1970-01-01
    • 2023-03-24
    相关资源
    最近更新 更多