我对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