有没有办法一直订阅相同的值而没有订阅中断?

时间:2019-09-19 05:23:25

标签: rxjs rxjs6 rxjs-pipeable-operators

我正在从减速器订购值,该值将始终为true。当我第一次订阅它的作品。但是下一次不是。根据我的研究,如果我将值更改为true,则值始终为false,就可以正常工作。

因此,订阅者期望观察者或退订者具有不同的值。目前我确实喜欢这样:

this.store.dispatch(new actionsMc.CheckConcurrencySuccess(false));
this.store.dispatch(new actionsMc.CheckConcurrency(true));

即使我始终必须通过true来订阅我的更新,我也总是这样做。除了rxjs之外,没有其他解决方法吗?

在订阅中,我尝试使用once,但无法正常工作。但正在寻找其他解决方法。

这是我的订阅:

this.store.pipe(last(select(subscribe.newvalue))).subscribe(res => {
   console.log('new res', res);
}) 

但不起作用。作为一种简单的方法,如何订阅和取消订阅每个收到的值?

1 个答案:

答案 0 :(得分:1)

如果我正确理解您的意思,您是说即使存储中的数据已更新为“ true”,订阅中也不会通知您。那是因为store自动比较新值和先前值,并且仅在值不相等时才触发.next()。

最简单的解决方案是将商店中的布尔值字段包装到一个对象(或数组:[boolean]而不是boolean)中,以便每次更新时都会收到通知。