RxJS - 在继续之前等待5个事件发生

时间:2016-12-30 01:26:06

标签: javascript node.js rxjs observable rxjs5

我有一个简单的RxJS5可观察对象:

function foo(){

 return Rx.Observable.create(obs => {
          obs.next();
   });

}

observable的创建方式如下:

const x = foo();

function bar(){

     return someObs()
       .flatMap(() => x.wait(5))  // wait for x to fire 5 times
       .map(v => ({z:v}));

}

我想要做的是等待x observable中的5个事件在继续之前触发。

我认为take运营商不是我想要的,所以我只是打电话给运营商" wait"

如何使用RxJS5做到这一点?

2 个答案:

答案 0 :(得分:1)

您正在寻找的运营商是skip

 return someObs()
   .skip(5)
   .map(v => ({z:v}));

答案 1 :(得分:0)

好的,看起来我可以这样做:

 return this.obsEnqueue.take(5).takeLast(1);

因为我最终只想开一场比赛, 等待5个事件后

如果有更好的方法可以做到这一点,肯定会喜欢听到它