有没有办法在没有“interval()”部分的情况下执行相同的功能?
我只想将数组连接到一个observable,然后只更新数组,并观察observable以观察该数组并作出反应。
如果这是一个很好的解决方案,有没有办法实现,并将.distinctUntilChanged()放入其中,以便在数据相同时它不会发出新值,那么这个“interval(10)”将不是瓶颈。
以下是Plunker:http://plnkr.co/edit/xlWSTz8gNfByTnT1REw5?p=preview
predict
答案 0 :(得分:12)
" ...以及观察该阵列的观察者并做出反应"
我认为,每次数组更改时,observable都会发出新值
在你的情况下:
export class AppComponent {
data = ["one", "two", "three"];
data$: Rx.BehaviorSubject<Array<string>>; // or data$: Rx.Subject<Array<string>>
latest$: Rx.Observable<Array<string>>;
constructor() {}
ngOnInit() {
this.data$ = new Rx.BehaviorSubject<Array<string>>(this.data);
this.latest$ = this.data$.map(data => data.map(
d => "" + d + " is a number"
));
}
addToArray() {
this.data.push('more numbers');
this.data$.next(this.data);
}
resetArray() {
this.data = ["one", "two", "three"];
this.data$.next(this.data);
}
}