问题:异步函数是否隐式返回 Promise?
在 JavaScript 中,异步函数是使用 async 关键字声明的,并且通常被认为会自动返回回报承诺。但是,这会引发潜在的不一致:当显式返回非 Promise 值时,该函数似乎将该值包装在 Promise 中。
答案:所有异步函数都返回 Promises
观察到的行为是正确的:所有异步函数都隐式返回 Promise。具体来说:
示例:
async function increment(num) { return num + 1; } // Logs 4, as the returned promise resolves to 4. increment(3).then(num => console.log(num));
包裹行为:
这个包装行为是生成器函数所独有的。例如,生成器函数也返回 Promise,但方式不同:
function* foo() { return 'test'; } // Logs an object, not "test". console.log(foo()); // Logs 'test' by explicitly calling .next() on the generator function. console.log(foo().next().value);
以上是异步函数总是返回 Promise 吗?的详细内容。更多信息请关注PHP中文网其他相关文章!