在RxJs 5中共享角HTTP网络调用结果的正确方法是什么?

在RxJs 5中共享角HTTP网络调用结果的正确方法是什么?

通过使用http,我们调用一个执行网络调用并返回可观察到的http的方法:

getCustomer() {
    return this.http.get('/someUrl').map(res => res.json());}

如果我们以这个可观察的用户为例,并向其添加多个订阅者:

let network$ = getCustomer();let subscriber1 = network$.subscribe(...);let subscriber2 = network$.subscribe(...);

我们要做的是确保这不会导致多个网络请求。

这似乎是一个不寻常的场景,但它实际上很常见:例如,如果调用方订阅了可观察到的显示错误消息,并使用异步管道将其传递给模板,那么我们已经有两个订阅者了。

在RxJ5中,正确的方法是什么?

也就是说,这似乎很好:

getCustomer() {
    return this.http.get('/someUrl').map(res => res.json()).share();}

但是在RxJs 5中,这是一种惯用的方法,还是我们应该做一些其他的事情呢?


料青山看我应如是
浏览 716回答 3
3回答
打开App,查看更多内容
随时随地看视频慕课网APP