Angular 如何处理HTTP Get请求并填充到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检索大约需要一秒钟的时间。这会导致订阅返回空数组,并且不会应用排序、搜索和分页 如何让对象服务

下面是完整的示例:,我正在实现一个带有排序、搜索和分页的表。我正在使用Angular 7和最新版本的ng引导

该示例使用对象的静态数组:

// 1. sort
    let countries = sort(COUNTRIES, sortColumn, sortDirection);
我试图找出一种方法,将HTTP GET请求返回的可观察对象订阅中的数组传递到同一个点

问题是HTTP GET从API检索大约需要一秒钟的时间。这会导致订阅返回空数组,并且不会应用排序、搜索和分页

如何让对象服务在排序开始之前等待数据返回和填充数组

我有一个API服务。让我们调用对象类型组。我的组服务正在调用API服务中名为getgroups()的方法。 我试过: -订阅API服务中的公共行为主题

  • 订阅API服务中getgroups()的返回行为主题对象

  • 我已尝试在组服务中延迟排序,以等待GET请求完成。这似乎没有影响

  • 我已尝试从组构造函数中放置代码:

在分配数据后的HTTP 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);
      },
      () => { 
      }
    );