RxJS – 等待5个事件发生,然后再继续

我有一个简单的RxJS5观察像这样:

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

可观察的是这样创build的:

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

我想要做的就是等待X个可观察对象中的5个事件发生,然后再继续。

我不认为这个运营商是我想要的,所以我只是叫运营商“ wait

我怎样才能用RxJS5做到这一点?

您正在寻找的操作员是跳过

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

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

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

因为我最终只想发一个事件,等待5个事件之后

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