首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NestJs异步httpService调用

NestJs异步httpService调用
EN

Stack Overflow用户
提问于 2018-08-18 17:08:23
回答 6查看 42.5K关注 0票数 23

如何使用NestJ在HttpService上使用异步/等待?以下代码不起作用:

代码语言:javascript
复制
async create(data) {
    return await this.httpService.post(url, data);
}
EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2018-08-18 18:00:46

HttpModule使用Observable而不是Promise,它不适用于异步/等待。所有HttpService方法都返回Observable<AxiosResponse<T>>

因此,您可以将其转换为Promise,然后在调用它时使用await,或者只返回Observable并让调用者处理它。

代码语言:javascript
复制
create(data): Promise<AxiosResponse> {
    return this.httpService.post(url, data).toPromise();
                                           ^^^^^^^^^^^^^
}

请注意,return await几乎总是冗余的(除了that之外)。

更新2022

toPromise被否决了。相反,您可以使用firstValueFrom

代码语言:javascript
复制
import { firstValueFrom } from 'rxjs';

// ...

return firstValueFrom(this.httpService.post(url, data))
票数 52
EN

Stack Overflow用户

发布于 2021-09-13 07:44:28

toPromise()被废弃时,您可以用firstValueFromlastValueFrom替换它

例如:

代码语言:javascript
复制
const resp = await firstValueFrom(this.http.post(`http://localhost:3000/myApi`)

https://rxjs.dev/deprecations/to-promise

票数 26
EN

Stack Overflow用户

发布于 2018-08-23 19:52:09

rxjs库是最强大的并发包,它选择了表单处理系统事件,如单击、外部请求(如get数据或删除记录)和.

这个图书馆的主要概念是:

处理未来中接收的数据

因此,在可观察的对象中,大多数使用3个参数,如

代码语言:javascript
复制
observablSource.subscribe(
   data => { ... },
   failure => { ... },
   compelete => { ... }
)

但是对于大多数后端开发人员来说,承诺使用来自ECMAScript 6特性,它是JavaScript的原生部分。

默认情况下,在角4+Nest.js中使用支持可观察的rxjs。在技术细节方面,您可以找到一个可以自动观察到的变更解决方案。

代码语言:javascript
复制
const data: Observable<any>;
data.from([
   {
      id: 1,
      name: 'mahdi'
   }, 
   {
      id: 2,
      name: 'reza'
   },
 ])

现在,您已经从服务器模拟了一个具有可观察类型的请求。如果您想将其转换为,则可以使用链式方法,例如:

代码语言:javascript
复制
   data.toPromise();

从这个步骤开始,您已经承诺使用对象和表单来更好地附加异步/等待。

代码语言:javascript
复制
 async userList( URL: string | URLPattern ) {
    const userList = await this.http.get<any>( URL ).toPromise();
    ...
 }
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51910908

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档