在线教育网站怎样建设加强心理咨询网站的建设方案
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 对象。
