我的史诗:
const myEpic: Epic<any, any> = action$ =>
action$.ofType(MY_ACTION_TYPE).switchMap(action => {
console.log("begin get ");
return Observable.fromPromise(api.get()).map(
response => {
console.log("end get ");
return resultLoaded(action.param, response);
}
);
});
然后在一段时间内我生成两个具有相同类型MY_ACTION_TYPE但具有不同参数的动作。控制台中的结果:
begin get
begin get
end get
为什么缺少第二个“结束”?
将switchMap更改为mergeMap解决了这个问题。
关于switchMap的文档:与mergeMap()类似,但是当源observable发出时取消任何以前的内部observable订阅。