繁体   English   中英

“等待”是否可以解析为 Promise?

[英]Is it possible for an 'await' to resolve to a Promise?

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

await 是否解析为异步函数的显式返回表达式给出的值,或者它是否解析为该值解析为 Promise 的情况?

我知道在 Stack Overflow 上已经有与此主题相关的问题,但我只想准确回答这个问题:“'await' 是否有可能解析为 Promise?”。 是还是不是? 当然,如果您还可以解释为什么或为什么不,那将非常有帮助。

不, await表达式不可能导致 promise。

就像你不能用另一个 promise 来完成 promise一样,就像then()永远不会用 promise 调用实现处理程序一样。

如果您使用async语法,这意味着 function 将返回Promise async/await只是处理Promises的不同语法,它允许您编写synchronous-like代码。

因此,如果您从async function 返回值,或者从non-async function 返回已resolved/rejected Promise ,则相同。

如果您使用async定义 function ,它将在 function 主体返回的任何内容周围包装一个Promise

如果 function 确实return new Promise(...)那么Promise将被包装在另一个由async添加的Promise中。

解析 Promise,但如果Promise包含另一个Promise ,则await表达式的值将是嵌套Promise await

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM