根据在两个搜索字段中输入的数据,合并两个请求的结果

时间:2019-05-17 13:36:18

标签: angular rxjs

我正在建立一个有角度的搜索表单,它将按名称或城市自动完成搜索结果。

我能够获得单个输入字段的结果。我无法将名称和城市搜索结果合并为一个。

 this.SearchResult = this.nameField.pipe(
      debounceTime(300),
      filter(data => data.length > 3),
      distinctUntilChanged(),
      filter(v => !!v),
      switchMap((name) => {
        return this.http.get<any>(
          environment.api_services.search.url + `/api/name/andy`).pipe(
          map(res => res.data)
        );
      })
    );

1 个答案:

答案 0 :(得分:0)

使用forkJoin

this.SearchResult = this.nameField.pipe(
      debounceTime(300),
      filter(data => data.length > 3),
      distinctUntilChanged(),
      filter(v => !!v),
      switchMap((name) => forkJoin(this.http.get<any>(
          environment.api_services.search.url + `/api/name/andy`).pipe(
          map(res => res.data)
        ), this.http.get<any>(
          environment.api_services.search.url + `/api/city/andy`).pipe(
          map(res => res.data)
        )){

      })
    );