Che*_*hen 0 javascript node.js promise async-await
我在网上找到了一个如下所示的示例:
async function asyncFunc() {
return Promise.resolve(123);
}
asyncFunc()
.then(x => console.log(x)) // 123
Run Code Online (Sandbox Code Playgroud)
但是,我也可以这样写:
async function asyncFunc() {
return 123
}
asyncFunc()
.then(x => console.log(x)) // 123
Run Code Online (Sandbox Code Playgroud)
我的意思是,我可以找到一个用于返回已解决的答案的用例(例如,memoization/caching),但是如果我可以直接返回结果,为什么还要实际使用它呢?
来自https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/async_function:
当调用异步函数时,它返回一个Promise.当异步函数返回一个值时,将使用返回的值解析Promise. 当异步函数抛出异常或某个值时,将使用抛出的值拒绝Promise.
强调我的.
尽管在第一种情况下返回已解决的承诺是不必要的,但您的示例都是完全有效的.任何返回普通值的异步函数都会自动将该值包装到已解析的promise中.我认为通常人们更喜欢第二个例子,因为它更直接.