返回介绍

windowToggle

发布于 2021-03-12 13:47:49 字数 2938 浏览 888 评论 0 收藏 0

windowToggle

函数签名: windowToggle(openings: Observable, closingSelector: function(value): Observable): Observable

以 openings 发出为起始,以 closingSelector 发出为结束,收集并发出源 observable 中的值的 observable 。

示例

示例 1: 根据渐增的定时器开关窗口

( StackBlitz | jsBin | jsFiddle )

// RxJS v6+
import { timer, interval } from 'rxjs';
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(
    // 窗口发出嵌套的 observable
    mergeAll()
    /*
      输出:
      "NEW WINDOW!"
      5
      "NEW WINDOW!"
      10
      11
      "NEW WINDOW!"
      15
      16
      "NEW WINDOW!"
      20
      21
      22
    */
  )
  .subscribe(val => console.log(val));

其他资源


源码: https://github.com/ReactiveX/rxjs/blob/master/src/internal/operators/windowToggle.ts

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文