使用 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$.