ObservablesとAngular 2サービスの変数の使用に関する質問があります。前者が好ましい方法だと思われますが、私はなぜそれが正確かはわかりません。私は、コンポーネント内のデータを消費するのは基本的2つの方法を見てきましたObservablesと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