以下示例摘自@ngrx example。这个@ngrx示例中mergeMap的好处是什么?
我理解这种观察方式。第一个map
函数获取这是要添加的书籍,再由mergeMap
进行处理,将其保存到数据库。
原始代码:
@Effect()
addBookToCollection$: Observable<Action> = this.actions$
.ofType(collection.ActionTypes.ADD_BOOK)
.map((action: collection.AddBookAction) => action.payload)
.mergeMap(book =>
this.db.insert('books', [ book ])
.map(() => new collection.AddBookSuccessAction(book))
.catch(() => of(new collection.AddBookFailAction(book)))
);
下面的代码可以做同样的事情上面?为什么需要mergeMap
?
修改代码:
@Effect()
addBookToCollection$: Observable<Action> = this.actions$
.ofType(collection.ActionTypes.ADD_BOOK)
.map((action: collection.AddBookAction) =>
this.db.insert('books', [ action.payload ])
.map(() => new collection.AddBookSuccessAction(action.payload))
.catch(() => of(new collection.AddBookFailAction(action.payload)))
);