【发布时间】:2017-04-01 00:38:44
【问题描述】:
我有两个 observable,一个从浏览器 localstorage 接收数据,另一个通过 WebAPI 从 数据库 接收数据。
- 我想订阅它们,因此如果 localstorage 中的 observable 有数据,请不要启动从 数据库 中获取数据的 observable。
- 如果 localstorage 中的 observable 没有任何 数据,调用 ajax 调用以从 WebAPI 获取数据。
在下面的例子中,我应该只得到20, 40, 60, 80, 100,因为第一个 observable 有数据。第二个 observable 没有运行,因为第一个 observable 开始发出数据。
【问题讨论】:
-
您希望本地存储 observable 发出多少值?大概只有一个;在这种情况下,问题是这个问题的欺骗:stackoverflow.com/a/39200507/6680611
-
我想要我在问题中提到的那个 observable 中的所有值。他们是
20,40,60,80,100。 -
您的大理石图不代表上面提出的问题。在图中,两个流同时开始,并且您已声明底部流将被忽略。然而,在上面的问题中,您声明如果 localstorage observable 有数据,则不会启动 ajax observable 。此外,您没有定义“有数据”的含义。 localstorage observable 是否完成?不清楚你在问什么。
-
大理石图只是显示有两个流的指南。如果第一个 observable/stream 有数据,则不应启动第二个 ajax observable/stream。 localstorage observable 可以或不可以有数据。它更像是本地缓存的数据。当应用程序启动时不会有任何数据。 ajax observable 从服务器带进来的数据会被写入本地存储。从下一次开始,应用程序将从本地存储 observable 中获取数据。
标签: javascript rxjs observable