Angular 如何处理HTTP Get请求并填充到ng引导表中?
下面是完整的示例:,我正在实现一个带有排序、搜索和分页的表。我正在使用Angular 7和最新版本的ng引导 该示例使用对象的静态数组:Angular 如何处理HTTP Get请求并填充到ng引导表中?,angular,bootstrap-4,http-get,Angular,Bootstrap 4,Http Get,下面是完整的示例:,我正在实现一个带有排序、搜索和分页的表。我正在使用Angular 7和最新版本的ng引导 该示例使用对象的静态数组: // 1. sort let countries = sort(COUNTRIES, sortColumn, sortDirection); 我试图找出一种方法,将HTTP GET请求返回的可观察对象订阅中的数组传递到同一个点 问题是HTTP GET从API检索大约需要一秒钟的时间。这会导致订阅返回空数组,并且不会应用排序、搜索和分页 如何让对象服务
// 1. sort
let countries = sort(COUNTRIES, sortColumn, sortDirection);
我试图找出一种方法,将HTTP GET请求返回的可观察对象订阅中的数组传递到同一个点
问题是HTTP GET从API检索大约需要一秒钟的时间。这会导致订阅返回空数组,并且不会应用排序、搜索和分页
如何让对象服务在排序开始之前等待数据返回和填充数组
我有一个API服务。让我们调用对象类型组。我的组服务正在调用API服务中名为getgroups()的方法。
我试过:
-订阅API服务中的公共行为主题
- 订阅API服务中getgroups()的返回行为主题对象
- 我已尝试在组服务中延迟排序,以等待GET请求完成。这似乎没有影响
- 我已尝试从组构造函数中放置代码:
this.http.get<Group[]>(environment.apiEndpoint").(
(resultGroups: Group[]) => {
groups.next(resultGroups);
HERE -->
},
(err: any) => {
console.log(err);
},
() => {
}
);
this.http.get(environment.apident)(
(结果组:组[])=>{
groups.next(resultGroups);
这里-->
},
(错误:任意)=>{
控制台日志(err);
},
() => {
}
);
我添加了扩展日志记录,它显示了调用事物的顺序
- API服务开始HTTP GET请求
- 组服务记录一个空的行为主题对象
- 组件控制器返回一个空的可观察值
- 组服务将所有组的列表返回给组件控制器(每个分页设置只能返回前10个组)
- API服务完成请求
我希望API服务开始和完成,然后组服务更新并将已排序和分页的数据返回给组件控制器。我找到了造成这些问题的根本原因。我用HTTP请求中的数据填充了一个可观察对象。我使用了与排序/搜索结果相同的可观察对象/pagination。这些变量必须在单独的变量中才能正常工作。尝试在请求中使用
.pipe
,如this.http.get(environment.apidentpoint”).pipe(点击((resultGroups:Group[])=>{groups.next(resultGroups)})
我只是试了一下,它似乎没有执行里面的内容。我甚至试了一下,但没有日志:this.http.get(environment.apidendpoint”).pipe(点击((resultGroups:Group[])=>{console.log(“reacted tap”);groups.next(resultGroups)}
this.http.get<Group[]>(environment.apiEndpoint").(
(resultGroups: Group[]) => {
groups.next(resultGroups);
HERE -->
},
(err: any) => {
console.log(err);
},
() => {
}
);