代码之家  ›  专栏  ›  技术社区  ›  Panu Logic

一个“等待”有可能解决一个Promise吗?

  •  0
  • Panu Logic  · 技术社区  · 3 年前

    如果我有一个异步函数,其中包含一个返回Promise的显式return语句,那么调用这样一个函数的wait表达式的值是多少?

    wait是解析为async函数的显式返回表达式给出的值,还是解析为Promise时的值?

    我知道Stack Overflow上已经有了与这个主题相关的问题,但我只想得到这个问题的准确答案:“'wait'有可能解析为Promise吗?”。是或否?当然,如果你也能解释为什么或为什么不,那将非常有帮助。

    0 回复  |  直到 3 年前
        1
  •  2
  •   Bergi    3 年前

    不,这是不可能的 await 表达式产生一个promise。

    就像你一样 cannot fulfill a promise with another promise ,并喜欢 then() 永远不要用promise调用履行处理程序。

        2
  •  1
  •   NeNaD    3 年前

    如果你使用 async 语法,这意味着函数将返回 Promise The async/await 只是处理语法不同 Promises ,它允许你写作 synchronous-like 代码。

    所以,如果你从以下函数返回一个值,情况也是一样的 async 函数,或者返回 resolved/rejected Promise non-async 功能。

        3
  •  -1
  •   Barmar    3 年前

    如果用以下方式定义函数 async ,它包裹着 Promise 无论函数体返回什么。

    如果该功能确实如此 return new Promise(...) 那么 承诺 将被另一个包裹起来 承诺 由添加 async .

    await 解析Promise,但如果 承诺 包含另一个 承诺 ,的价值 等待 表达式将被嵌套 承诺 .