进行依赖的HTTP调用时,展平运算符重要吗?

时间:2019-05-09 22:19:23

标签: angular rxjs

使用RxJS进行多个从属HTTP API调用时,通常可接受的答案是使用mergeMap()/ flatMap()链接这些调用并以一个结果流结束。我想知道为什么WHY mergeMap()是首选的运算符。这实际上是否比其他三个扁平化运算符更好或更糟?在我看来,您可以使用这四种方法中的任何一种(合并,合并,切换或穷举),并最终获得相同的结果/可靠性。

在Angular中,您可以拨打以下电话:

function getCall(id) {
    return this.http.get<string>('http://www.apiurl.com/' + id);
}

这将永远只返回一个可观察到的值,该值将发出一个字符串值。所以做类似的事情

getCall(1).pipe(
    mergeMap(() => getCall(2))
).subscribe();

行为应与

完全相同
getCall(1).pipe(
    concatMap(() => getCall(2))
).subscribe();

因为我们可以假设getCall(id)只能返回一个可观察的值。

因此,在HTTP调用的上下文中,有人使用拼合运算符实际上没有任何区别。

0 个答案:

没有答案