AngularFire Observable 在停止更改时触发
AngularFire Observable to trigger when stopped changing
当我的 Firebase 数据库中的值在 3 秒内没有更改时,我希望在我的订阅客户端中收到通知。我在 Typescript 中使用 RxJs 和 AngularFire。一般来说,我是 Rx 的新手,我尝试过超时、延迟和节流的不同组合。看来 AngularFire Observable 没有继承完整的 RX Observable 接口,否则我想我应该使用间隔。谁能指出我正确的方向?
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)
<script src="https://unpkg.com/rxjs/bundles/Rx.min.js"></script>
当我的 Firebase 数据库中的值在 3 秒内没有更改时,我希望在我的订阅客户端中收到通知。我在 Typescript 中使用 RxJs 和 AngularFire。一般来说,我是 Rx 的新手,我尝试过超时、延迟和节流的不同组合。看来 AngularFire Observable 没有继承完整的 RX Observable 接口,否则我想我应该使用间隔。谁能指出我正确的方向?
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)
<script src="https://unpkg.com/rxjs/bundles/Rx.min.js"></script>