javascript - 异步函数返回一个 promise

标签 javascript node.js promise async-await

我在网上找到了一个示例,如下所示:

async function asyncFunc() {
    return Promise.resolve(123);
}
asyncFunc()
  .then(x => console.log(x)) // 123

但是,我也可以这样写:

async function asyncFunc() {
    return 123
}
asyncFunc()
  .then(x => console.log(x)) // 123

我的意思是,我可以找到一个返回已解决答案的用例(例如,内存/缓存),但是如果我可以直接简单地返回结果,为什么我应该实际使用它呢?

最佳答案

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

When an async function is called, it returns a Promise. When the async function returns a value, the Promise will be resolved with the returned value. When the async function throws an exception or some value, the Promise will be rejected with the thrown value.

强调我的。

您的两个示例都是完全有效的,尽管在第一种情况下返回已解决的 promise 是不必要的。任何返回普通值的异步函数都会自动将该值包装到已解析的 Promise 中。我认为人们通常更喜欢第二个示例,因为它更简单。

关于javascript - 异步函数返回一个 promise ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47402523/

相关文章:

javascript - node.js 在测试中设置 process.env 变量

javascript - Express 路由器无法工作

javascript - 为什么我的 promise 哈希在传递的 promise 解决之前解决?

javascript - SlikelySubtags.json 未加载

javascript - 了解 Angular 2 中的可观察对象

node.js - 如何更新到 v13

javascript - 使用 Promise React Redux 登录 : login:1 Uncaught (in promise)

javascript - 如何将异步 Promise 函数重构为非异步以避免反模式

javascript - 从新行开始将对象的 Angular 追加到文本区域

javascript - 通过 javascript 动态更改元标记内容