首页 >web前端 >js教程 >为什么 Async/Await 函数总是返回 Promise?

为什么 Async/Await 函数总是返回 Promise?

Susan Sarandon
Susan Sarandon原创
2024-11-29 04:48:17521浏览

Why Do Async/Await Functions Always Return a Promise?

为什么 async/await 总是返回 Promise?

使用 async/await 功能一开始可能会令人困惑,尤其是当涉及到处理异步函数返回的承诺。让我们深入研究所提供代码中突出显示的行为:

<br>const getJSON = async () =>; {<br> const 请求 = () =>; new Promise((解决, 拒绝) => (<pre class="brush:php;toolbar:false">setTimeout(() => resolve({ foo: 'bar'}), 2000)

));

const json = wait request();
return json;
}

执行 getJSON() 时,函数返回一个 Promise 目的。发生这种情况是因为每个异步函数都会在后台返回一个 Promise。 wait 关键字对此 Promise 进行操作,暂停函数执行,直到 Promise 解析或拒绝。

在示例中,await 等待 request() 解析。但是,它不会自动解开 Promise。您需要使用await或.then()显式处理返回的Promise。

使用.then(),如提供的代码所示:

<br>getJSON ().then(json => console.log(json)); // prints { foo: 'bar' }<br>

当 Promise 解析时调用回调函数并将结果作为 json 参数传递。这种方法允许在回调中访问解析值。

另一方面,使用 console.log(getJSON()) 直接记录异步函数的结果会返回一个 Promise 对象,因为它不会解包的承诺。 Promise 模型确保您只能从 Promise 本身内部或通过使用 .then().

等显式解包方法来访问 Promise 的结果。

以上是为什么 Async/Await 函数总是返回 Promise?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn