将两个可观察数组合并为一个可观察数组

时间:2019-07-24 08:46:34

标签: angular typescript rxjs

我有一个可观察的数组similarIdeasObservable$,另一个从服务器获取的类似this.ideaService.getSimilarIdeas()的可观察数组。我想在不使用订阅的情况下合并这两个Observable数组。我怎样才能做到这一点?

我正在尝试以下方式

 this.similarIdeasObservable$.pipe(concat(this.ideaService.getSimilarIdeas(this.idea).pipe(
        concatMap(i => i),
        toArray(),
        catchError(error => {
          throw error;
        }),
        finalize(() => {
          this.loading = false;
        })
      )));

concat已过时。

2 个答案:

答案 0 :(得分:1)

我建议您使用forkJoin

class RtsToolsViewSets(viewsets.ModelViewSet): serializer_class = AgentSerializer queryset = Agents.objects.all() http_method_names = ['get'] 的工作原理是,它需要完成输入可观察项(在下面的示例中为forkJoinobservableA),并最终将其用于返回数组表示的observable,由输入的observables返回的值组成。

observableB

答案 1 :(得分:0)

您可以使用merge合并多个可观察的对象。

例如

import { merge } from 'rxjs';

const example = merge(
  similarIdeasObservable$,
  this.ideaService.getSimilarIdeas(this.idea)
);