我對Angular 2服務中Obserbles和變量的使用有疑問。前者似乎是首選的方式,但我無法找出原因。Observable與Angular 2服務中的變量
給定一個示例服務如此:
@Injectable()
export class TestService {
// Method 1
public data = {x: Math.random(), y: Math.random()};
// Method 2
private _data$:BehaviorSubject<any> = new BehaviorSubject({x: Math.random(), y: Math.random()});
public data$:Observable<any> = this._data$.asObservable();
constructor() {
setInterval(() => {
this.data = {x: Math.random(), y: Math.random()};
this._data$.next({x: Math.random(), y: Math.random()});
}, 500);
}
}
我看到的部件消耗數據的基本方法。只需直接使用變量:
<pre>{{testService.data | json}}</pre>
並用觀察:
<pre>{{(testService.data | async) | json}}</pre>
似乎都工作,所以有什麼用更精細的基於可觀測的方法的優勢在哪裏?
Plunker:https://plnkr.co/edit/1qVDSZwq2NVgZsWFPnii?p=preview