首页 > 解决方案 > 为什么 async 和 await 没有在函数之外返回已解决的承诺?

问题描述

我有一个名为 getCat 的异步函数,其中使用了 await 。当响应的控制台日志在其函数内部执行时,它会记录预期的已解决承诺。但是,如果我从另一个函数 displayCat 调用它并记录整个 getCat 函数的结果,那么它会返回一个承诺。但是此时结果应该是相同的,那么为什么我会得到两种不同类型的控制台日志响应?

var getCat = async () => {
  const result = await fetch('https://cataas.com/cat')
  console.log('response: ', result);
  return result;
}

var displayCat = () => {
  console.log('getCat() : ', getCat())
}

在此处输入图像描述

标签: javascript

解决方案


异步函数隐式返回一个 Promise,因此需要像其他任何函数一样等待它。


推荐阅读