【问题标题】:RxJS - Wait until 5 events to occur before continuingRxJS - 等到 5 个事件发生后再继续
【发布时间】:2016-12-30 01:26:06
【问题描述】:

我有一个简单的 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 做到这一点?

【问题讨论】:

  • 我试过 takeLast,但似乎没有用
  • .takeLast(1) 可能会起作用,但它必须与其他东西结合使用,我不知道其他东西是什么

标签: javascript node.js rxjs observable rxjs5


【解决方案1】:

你要找的接线员是skip

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

【讨论】:

    【解决方案2】:

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

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

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

    如果有更好的方法来做到这一点,一定想听听

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多