【问题标题】:ESNext: What's the purpose of the `async` keyword? [duplicate]ESNext:`async` 关键字的作用是什么? [复制]
【发布时间】:2017-10-11 12:16:37
【问题描述】:

我最近在 JavaScript Promise 对象中经常使用 async/await 关键字,我喜欢它,但我不明白 async 关键字的真正目的是什么。

为什么使用await的函数必须使用async关键字?

【问题讨论】:

    标签: javascript async-await ecmascript-next


    【解决方案1】:

    标记为async 的函数总是返回一个promise(与常规函数相反):

    当调用async 函数时,它会返回Promise。当async 函数返回一个值时,Promise 将使用返回值解析。当async 函数抛出异常或某个值时,Promise 将被抛出的值拒绝。

    https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/async_function#Description

    【讨论】:

    • 澄清一下,异步是一种语法糖。它为您节省了处理承诺和东西所需的一些输入。但最重要的是,async 允许您在函数中使用 await 关键字。您不能等待来自非异步函数的任何内容。
    • @netchkin “async 是一种语法糖”“async 允许你在函数中使用 await 关键字。” 相互矛盾。
    • @zeroflagL:好点!我确实误用了“语法糖”这个词。我的意思是,如果您手动编写基于 Promise 的代码,它可以节省您的打字时间。
    猜你喜欢
    • 2018-09-13
    • 2019-10-24
    • 2011-08-17
    • 2019-11-14
    • 2011-03-02
    • 2020-08-23
    • 1970-01-01
    • 1970-01-01
    • 2010-11-25
    相关资源
    最近更新 更多