如何 return 来自 AxiosResponse 的数据?

How can I return the data from AxiosResponse?

我是 NestJS 的新手,我正在尝试使用包含 axiosHttpModule。我遇到的问题是我不知道如何 return 来自响应的数据。我得到一些 Subscription 对象。现在我只能这样 console.log:

this.httpService
      .get('https://api.chucknorris.io/jokes/random')
      .subscribe((e) => console.log(e.data));

这很好用,但是当我尝试 return 数据时,它 return 改为 Subscriber 对象。

this.httpService
      .get('https://api.chucknorris.io/jokes/random')
      .subscribe((e) => e.data);

有人能告诉我我做错了什么吗?谢谢。

我是这样解决的:

const res = this.httpService
      .get('https://api.chucknorris.io/jokes/random')
      .toPromise()
    
console.log(res.data)

您可以使用 Michal 提供的答案,也可以 return observables 并使用它们(因为 Nest 稍后会处理订阅)。返回可观察对象看起来像这样:

return this.httpService
  .get('https://api.chucknorris.io/jokes/random')
  .pipe(
    map((res) => res.data)
  );

这两种方法都可以正常工作。这仅取决于您对 RxJS 的熟悉程度