1
検索が完了したときにトリガーされる次の@ngrx
エフェクトがあります。 SEARCH_COMPLETE
イベントはコレクションの製品を出力します。@ngrx DBのコレクションに個々のアイテムを保存するには
コレクション内の各製品を、単一の値としてコレクション全体ではなく、IndexedDBに保存します。これを達成するために、@ngrx
DBを使用する製品から新しいObservable
を作成しました。私はlasoがそれを動作させるためにsubscribe
コールを使用しなければならなかった。
私の質問は、これは正しい方法ですか?またはsubscribe
メソッドを使用しないと良い方法ですか?
@Effect()
addProductsToDB$: Observable<Action> = this.actions$
.ofType(ProductsSearchActions.ActionTypes.SEARCH_COMPLETE)
.map((action: ProductsSearchActions.SearchCompleteAction) => action.payload)
.switchMap(products => {
return Observable.from(products as IProduct[])
.do(product => {
this.db.insert('products', [{ product }])
.subscribe();
})
.map(() => new ProductDBActions.ProductAddedSuccessAction(true));
});
あなたが提案したものを試してみましたが、うまくいきます。どうして '' 'subscribe''コールなしで動くのですか? –
@wonderfulworld' switchMap'に暗黙の 'subscribe'が含まれているので動作します。 – cartant