RxJS 5.5.0-beta:mergeMap行为与map + mergeAll不同

时间:2017-10-06 19:16:29

标签: rxjs rxjs5

我无法创建一个可重复的示例,所以请耐心等待。

我创建了一个在Observable中包装异步API响应的库。大大简化,库具有像lib.ask("end-point")这样的函数,它们返回一个Observable,其中包含对该端点的API调用的响应。

我想在每次发生另一个事件时运行该API调用。我正在尝试使用某个版本的mergeMap / switchMap / concatMap对其进行建模,具体取决于具体情况。我们以mergeMap为例。

如果我使用map + mergeAll,它可以正常工作。我是这样写的:

var responses$ = event$.pipe(
    map(()=>lib.ask("end-point")),
    mergeAll()
);

当我订阅回复$时,我得到了回复!

但是,如果我用mergeMap重写相同的链,它就不起作用:

var responses$ = event$.pipe(
    mergeMap(()=>lib.ask("end-point"))
);

在这种情况下,当我订阅时,我没有得到任何结果。几乎看起来好像内部订阅永远不会被制作。

就像我说的那样,我正在努力创造一个可重复的例子。我试图调试RxJS做什么来试图找到这个东西失败的地方,但是还没弄清楚。如果有人能想到为什么或者在什么情况下mergeMap的行为与map + mergeAll不同,那么这可能会帮助我弄清楚我的问题所在。

0 个答案:

没有答案