如何 return 来自 AxiosResponse 的数据?
How can I return the data from AxiosResponse?
我是 NestJS 的新手,我正在尝试使用包含 axios
的 HttpModule
。我遇到的问题是我不知道如何 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 的熟悉程度
我是 NestJS 的新手,我正在尝试使用包含 axios
的 HttpModule
。我遇到的问题是我不知道如何 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 的熟悉程度