AngularFire Observable在停止更改时触发

时间:2017-01-28 09:57:22

标签: rxjs angularfire

我希望在我的订阅客户端中通知我的Firebase数据库中的值没有更改3秒钟。我正在使用RxJs&打字稿中的AngularFire。我一般都是Rx的新手,我尝试过Timeout,Delay和Throttle的不同组合。似乎AngularFire Observable没有继承完整的RX Observable接口,否则我想我应该使用interval。有人能指出我正确的方向吗?

1 个答案:

答案 0 :(得分:3)

$timeout.verifyNoPendingTasks()

实例:

Rx.Observable.merge(
  angularFireStream$,
  angularFireStream$
    .switchMapTo(
      Rx.Observable.of("no change in last 3s").delay(3000)
    )
)
let angularFireStream$ = new Rx.Subject();
    
Rx.Observable.merge(
  angularFireStream$,
  angularFireStream$
  .switchMapTo(
    Rx.Observable.of("no change in last 3s").delay(3000)
  )
)
.subscribe(console.log);


angularFireStream$.next(1);
setTimeout(() => angularFireStream$.next(2), 2000)
setTimeout(() => angularFireStream$.next(3), 3000)