最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

结合可观测量

IT培训 admin 6浏览 0评论

结合可观测量

我有这样的代码:

let $obs = Rx.Observable.merge(
    this.obsEnqueue,
    Rx.Observable.timer(2000)
);

但这不是做要我要 - 要我想要做的就是等待,直到两个事件触发(从this.obsEnqueue事件和Rx.Observable.timer()事件)。

merge将最有可能创造一个新的可观测时,第一个事件在被传递的所有观测情况,将闪光。我想创建一个新的观察到的,将火毕竟观察到在已经解雇过去了。

所以更普遍:

let $obs = Rx.Observable.X(
    Rx.Observable,    // wait
    Rx.Observable,    // until
    Rx.Observable,    // all of these
    ...
    Rx.Observable     // fire the next event
);

我怎样才能做到这一点?什么是X?

回答如下:

您可以使用zip,如果你想,当他们到达所有的结果结合起来:

const { Observable } = Rx;

const result = Observable.zip(
  Observable.of('data1'),
  Observable.of(true).delay(500),
  Observable.timer(1000)
);

result.forEach(console.log); // after 1000ms: ['data1', true, 0]
<script src="https://cdnjs.cloudflare/ajax/libs/rxjs/5.0.1/Rx.min.js"></script>

结合可观测量

我有这样的代码:

let $obs = Rx.Observable.merge(
    this.obsEnqueue,
    Rx.Observable.timer(2000)
);

但这不是做要我要 - 要我想要做的就是等待,直到两个事件触发(从this.obsEnqueue事件和Rx.Observable.timer()事件)。

merge将最有可能创造一个新的可观测时,第一个事件在被传递的所有观测情况,将闪光。我想创建一个新的观察到的,将火毕竟观察到在已经解雇过去了。

所以更普遍:

let $obs = Rx.Observable.X(
    Rx.Observable,    // wait
    Rx.Observable,    // until
    Rx.Observable,    // all of these
    ...
    Rx.Observable     // fire the next event
);

我怎样才能做到这一点?什么是X?

回答如下:

您可以使用zip,如果你想,当他们到达所有的结果结合起来:

const { Observable } = Rx;

const result = Observable.zip(
  Observable.of('data1'),
  Observable.of(true).delay(500),
  Observable.timer(1000)
);

result.forEach(console.log); // after 1000ms: ['data1', true, 0]
<script src="https://cdnjs.cloudflare/ajax/libs/rxjs/5.0.1/Rx.min.js"></script>

与本文相关的文章

发布评论

评论列表 (0)

  1. 暂无评论