[英]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.