我正在尝试以可观察的方式将元素添加到列表中,当我调用.pipe(map ...时,它会迭代两次,然后添加元素两次。
可观察的列表:
profesionales$: Observable<Profesional[]>;
添加元素的功能
this.profesionales$ = this.profesionales$.pipe(map(profesionales => {
return [...profesionales, profesional];
}));
[... profesionales,profesional]中的最后一个'profesional'是要添加到列表中的元素。
谢谢。
答案 0 :(得分:0)
我建议不要对其使用Observable,而应使用BehaviorSubject并按如下方式使用它:
profesionales$: BehaviorSubject<Profesional[]> = new BehaviorSubject<Profesional[]>([]);
然后添加一个元素:
this.profesionales$.next([...this.profesionales$.getValue(), newProfesional])
答案 1 :(得分:0)
您可以使用rxjs .mergeMap
和of
添加到可观察对象。
let profesional = { id: 1, name: "some example profesional" };
this.profesionales$ = this.http
.get<Profesional[]>("some_url")
.pipe(mergeMap(v => of(v.concat(profesional));
注意:我以http
调用为例,可观察到,因为我不确定您的实现。这也很有用-> learn rxjs docs