我有以下@ngrx
效果,当搜索完成时触发。该SEARCH_COMPLETE
事件发出产品集合。
我想将集合中的每个产品保存到 IndexedDB,而不是将整个集合保存为单个值。为了实现这一点,我Observable
从使用@ngrx
DB observable 的产品中创建了一个新的。我不得不使用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));
});