南宁建设职业技术学院招聘信息网站,公众号怎么做链接,网站建设的渠道策略,建设个人网站可以卖产品吗async 函数的设计就是这样的#xff1a;无论你返回什么值#xff0c;它都会自动被包装为一个 Promise 对象。这就是为什么说 async 函数最终返回的是一个新的 Promise 对象。
当你在 async 函数中使用 return 语句返回一个值时#xff0c;这个值会成为最终返回的 Promise 对…async 函数的设计就是这样的无论你返回什么值它都会自动被包装为一个 Promise 对象。这就是为什么说 async 函数最终返回的是一个新的 Promise 对象。
当你在 async 函数中使用 return 语句返回一个值时这个值会成为最终返回的 Promise 对象的解析值。如果你在 async 函数中返回一个 Promise那么返回的 Promise 对象的解析值会成为最终返回的 Promise 对象的解析值。
下面的例子可以进一步解释这个概念
async function foo() {return bar;
}foo().then(value console.log(value)); // 输出 bar虽然函数体中只是返回了一个字符串 bar但由于 foo 是一个 async 函数所以它实际上返回的是一个解析为 bar 的 Promise 对象。
因此你的代码 return await response.json(); 实际上是在做以下事情
等待 response.json() 返回的 Promise 对象解析为 JSON 对象。将 JSON 对象作为返回值。由于这是一个 async 函数返回的 JSON 对象被包装为一个解析为该 JSON 对象的新 Promise 对象。
所以说虽然你的函数体中返回了一个值但由于你使用了 async 关键字所以最终返回的总是一个 Promise 对象。