我还没有任何代码,我刚刚做了很多阅读,我对我想要实现的内容有疑问。
我有三个屏幕从一个屏幕推到另一个屏幕。
屏幕1 - >屏幕2 - >屏幕3
我还有一个可以进行HTTP
调用的提供程序,并将响应保存在一个可观察的变量中,我将为此示例调用httpResponse$
。
我想在屏幕3中使用httpResponse$
,但理想情况下,我希望在用户进入屏幕3之前填充它。所以我从屏幕1拨打电话到提供者获取数据并将其分配给httpResponse$
。然后在屏幕3中,我想订阅httpResponse$
。
现在,我的理解是这不起作用,因为当我从屏幕1调用提供者时,它会在响应中的某处调用.next
,这将是未定义的,因为它没有已订阅,因为用户尚未访问屏幕3。
这是对的吗?有没有办法做我想做的事情?那是填充数据然后在以后观察它的任何变化?
答案 0 :(得分:1)
使用rxjs
ReplaySubject
。它为每个新订户发出最后(n)个值。顺便说一句,请确保您不会错误地终止它,例如使用take (1)
以便将来的订阅者可以使用它