如何从请求返回HttpClient响应主体?

扎娜·丹尼尔(Zana Daniel)

我有一个依赖于API响应的内容的组件。我已经设置了解析器,但是在我的数据准备好之前它仍然会返回。

如何使我的pull_categories()函数等待接收到响应主体然后返回?而不是返回一个空对象,因为它不会等待,甚至在下面的情况下也不会调用它。


服务

private _categories = [];

constructor(private http: HttpClient) { }

pull_categories() {
    this.http.post('https://myapi.com/something', null)
    .subscribe(
        data => {
            this._categories = data['response'];
            return this._categories;
        }
    );
}

component.ts

categories = [];

constructor(private route: ActivatedRoute) { }

ngOnInit() {
    this.route.data.subscribe(
        (data: Data) => {
            this.categories = data.categories;
        }
    );
}

解析器

constructor(private categoriesService: CategoriesService) { }

resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<any> | Promise<any> | any {
    return this.categoriesService.pull_categories();
}

app-routing.module.ts

{
    path: '',
    component: HomeComponent,
    resolve: {categories: CategoriesResolverService}
}
普拉塔比·赫曼特·帕特尔

首先,在service.ts中,您不需要订阅,您应该在要实际使用数据的位置进行订阅。subscribe方法返回Subscription,而不是http api的响应。

您可以将服务方法更新为

pull_categories(): Observable<any> {
    return this.http.post('https://myapi.com/something', null);
}

pull_categoriesObservable当您在组件中(或任何地方)对其进行订阅时,方法将立即返回一个带有的方法,将执行http调用并在您的subscribe部分中返回响应

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用java.net.http.HttpClient登录请求/响应?

读取响应主体在异步请求

如何使用Apache HttpClient流式传输响应主体

如何ungzip(解压缩)NodeJS请求的模块gzip响应主体?

如何获得HttpClient返回状态码和响应正文?

在将响应返回给调用方时,如何注销对Spring WebFlux WebClient请求的失败响应的主体?

Java HTTP请求读取响应主体

如何在Spring响应处理程序函数中提取请求主体?

如何模拟HttpClient类以返回不同的响应

从响应对象获取请求主体

node.js请求对象-返回响应主体以进行进一步操作

使用HttpClient,如何查看请求内容主体?

改装返回零响应主体

如何将异步HttpClient响应返回给WinForm?

Angular HTTP请求获取响应主体

在HTTPS响应的主体中返回JSON对象

如何对短信请求返回空响应?

Rspec请求规范检查响应主体

Angular HttpClient请求方法如何设置主体

在Ktor中,如何将InputStream流传输到HttpClient请求的主体中?

响应主体为空(获取请求)

解析请求中的响应主体并返回给客户端

GET请求的响应主体为空

如何记录 HttpClient 请求,响应包括正文?

使用 HttpClient 如何发送 GET 请求并在更改端点的循环中返回响应

从 HttpClient 请求返回响应正文

如何使用 rxjs 映射挖掘 HttpClient 获取请求响应?

如何调用 httpClient 请求 - 响应给出解码值

发布请求后如何处理响应 dart httpClient