- windowToggle
- 签名:
windowToggle(openings: Observable, closingSelector: function(value): Observable): Observable
- 签名:
- 以 openings 发出为起始,以 closingSelector 发出为结束,收集并发出源 observable 中的值的 observable 。
- 示例
- 示例 1: 根据渐增的定时器开关窗口
- 示例
- 其他资源
windowToggle
签名: windowToggle(openings: Observable, closingSelector: function(value): Observable): Observable
以 openings 发出为起始,以 closingSelector 发出为结束,收集并发出源 observable 中的值的 observable 。

示例
示例 1: 根据渐增的定时器开关窗口
( StackBlitz |
jsBin |
jsFiddle )
import { interval } from 'rxjs/observable/interval';import { timer } from 'rxjs/observable/timer';import { tap, windowToggle, mergeAll } from 'rxjs/operators';// 立即发出值,然后每秒发出值const source = timer(0, 1000);// 每5秒开关窗口const toggle = interval(5000);const example = source.pipe(// 每5秒开启窗口windowToggle(toggle, val => interval(val * 1000)),tap(_ => console.log('NEW WINDOW!')));const subscribeTwo = example.pipe(// 窗口发出嵌套的 observablemergeAll()/*输出:"NEW WINDOW!"5"NEW WINDOW!"1011"NEW WINDOW!"1516"NEW WINDOW!"202122*/).subscribe(val => console.log(val));
其他资源
- windowToggle
- 官方文档 - 使用 windowToggle 有条件地分割 RxJS observable
- André Staltz
源码: https://github.com/ReactiveX/rxjs/blob/master/src/internal/operators/windowToggle.ts
