我有一个场景,我想从服务器获取一些数据,用户可以请求刷新这些数据 . 页面的其余部分需要更新以反映当前加载的数据迭代 .
我正在想象我有一个热的Observable,它发布它加载的数据 . 我不想将数据的所有旧迭代保留为1.我只关心数据的最新迭代和2.如果用户在给定会话中刷新足够,则可能导致内存不足异常 .
但是,我想保留最后发布的值,这样如果我动态调出需要访问相同数据的新组件,它就不会不必要地发送新请求 . 为此,我需要一个Observable坐在热观测器的顶部,它只能保留并发出热观测值的最后一个发射 . 这是一个说明这个想法的图表:
dataStream X - - - - - Y - - - - |>
echoStream X - - - - - Y - - - - |>
subscription1 X - - - - - Y - - - - |>
subscription2 X - Y - - - - |>
subscription3 Y - - |>
echoStream订阅了dataStream . subscription1,subscription2和subscription3都订阅了echoStream,但是他们在不同的点订阅 . 在订阅时,它们获取从dataStream发出的最后一个值,并从dataStream接收后续更新 .
echoStream是Hot和Cold Observable的混合体,具有有限的历史记录保留 .
在上面的例子中,rxjs是否提供了一个标准运算符来设置echoStream之类的东西?