私はasObservableを公開するストアを持っています。ビューはこれにサブスクライブし、データを表示します。初めてデータを表示し、サブスクライブイベントがトリガーされていないページに初めてアクセスしたときに、シングルトンサービスに変更して以来、最初の負荷で作業していました。 subject.nextが更新され、ビューの更新やすべてがうまくいくようなデータ操作を行った後。Observerはコンポーネントへの最初のロード時に起動しません。
これは競合状態の問題ではなく、データがページのコンストラクタが呼び出された時点でストアに格納されていることを保証しています。購読これ
- データをサーバから
- subject.nextを(ロードされている:イベントの
配列は、次のように(デバッグ中に確認された)でありますオブザーバ
サブスクリプションイベントは発生せず、データが格納されません(ストアには存在します)。リストに何らかの種類の操作を実行すると、すべてが期待通りにカスケードされ、next()が呼び出され、サブスクライブイベントが発生します。
ページの読み込み時にページを取得するにはどうすればよいですか?
data.store
protected _subject$: Subject<Array<any>>;
this._subject$.next(newData); // confirmed via console this happens with good data
get contacts$(): Observable<any> {
return this._subject$.asObservable();
}
成分 - 私は両方がコンストラクタおよびngAfterViewInit以下にブロックを入れてみた、同じ結果
// this happens after the above data is already set
this.contacts$.subscribe(data => {
// this block does not execute on page load
});
コードを追加できますか? – echonax
この散文の説明から正確に何が起こっているのかを完全に把握するのは難しいです。プランナーで再現できますか? –
関連ビットを追加しましたが、実際にはこのプロセスを管理するコードはあまりありません –