【发布时间】:2017-02-03 13:38:48
【问题描述】:
我正在尝试了解 RxJS 5 share() 运算符的行为。
根据教程和文档,share() 将冷的 observable 变成热的。
我正试图看到这一点。这是我尝试过的:
const search$ = Rx.Observable.ajax('https://www.googleapis.com/books/v1/volumes?q=javascript').share();
然后我第一次订阅:
search$.subscribe(console.log);
我从开发工具中看到发出了网络请求:
Request URL:https://www.googleapis.com/books/v1/volumes?q=javascript
然后在重新运行相同的订阅时:
search$.subscribe(console.log);
我注意到另一个网络请求也发出了。
有人可以解释为什么share() 运算符会显示这种行为吗?我原以为只会发出一个网络请求...
P.S. 使用 xxx.publishLast().refCount(); 而不是 xxx.share(); 可以完成这项工作,但我主要关心的是了解上述上下文中的 share() 行为。
【问题讨论】: