使用 RxJS 获取 Observable 的最后一条消息
Get last message of Observable with RxJS
我想知道是否可以重播或重新发送RxJS中Observable的最后一条消息。
喜欢:
class MyClass {
results: Observable<MyData[]>;
first: MyData;
reactToSmth() {
this.results.subscribe((data: MyData[]) => {
this.first = data[0];
});
}
reactToSmthElse() {
// doesn't exist :-)
this.results.resendLast(data: MyData[]) => {
this.first = data[1];
});
}
}
我知道我可以简单地将 data
存储在我的 class 中,这样我可以稍后进行操作,同时在更复杂的情况下我想知道 是否可能 做那样的事情以及怎么做。
谢谢。
嗯,是的,这是可能的,甚至很容易。有几种选择,但最简单的可能是给 obs$
一个 observable,使用 obs$.shareReplay(1)
获得一个 observable,订阅时将重新发出最后发出的值 obs$
.
我想知道是否可以重播或重新发送RxJS中Observable的最后一条消息。
喜欢:
class MyClass {
results: Observable<MyData[]>;
first: MyData;
reactToSmth() {
this.results.subscribe((data: MyData[]) => {
this.first = data[0];
});
}
reactToSmthElse() {
// doesn't exist :-)
this.results.resendLast(data: MyData[]) => {
this.first = data[1];
});
}
}
我知道我可以简单地将 data
存储在我的 class 中,这样我可以稍后进行操作,同时在更复杂的情况下我想知道 是否可能 做那样的事情以及怎么做。
谢谢。
嗯,是的,这是可能的,甚至很容易。有几种选择,但最简单的可能是给 obs$
一个 observable,使用 obs$.shareReplay(1)
获得一个 observable,订阅时将重新发出最后发出的值 obs$
.