【发布时间】:2018-01-20 02:30:47
【问题描述】:
我知道这是基本的 rx 内容,但我对何时决定触发有点困惑。采取以下措施:
Observable.of([1,2,3,4,5])
.combineLatest([6,7,8,9,10])
.take(1)
.do(([first, second]) => console.log(first, second))
// ...Logs nothing...
为什么在您订阅之前它什么都不做?在我将订阅调用添加到链的末尾之前,不会触发任何日志:
Observable.of([1,2,3,4,5])
.combineLatest([6,7,8,9,10])
.take(1)
.do(([first, second]) => console.log(first, second))
.subscribe(() => console.log('Subscribed'));
// Logs:
// "5, 6"
// "Subscribed"
另外,如果我理解正确,我不需要取消订阅,因为 take(1) 会为我处理,对吗?
【问题讨论】:
-
Rx 最好的比喻是管道。您已经铺设好管道,
subscribe()打开水龙头。另外,take(1)在传递一项后会发出完整的通知,这也取消了下游订阅。
标签: rxjs