无需订阅即可从两个可观察对象访问数据

时间:2018-08-11 12:44:14

标签: javascript angular rxjs observable

我的第一个可观察对象发出与用户有关的数据(来自Firebase)。关于发出的数据,我想触发对Firebase的第二次调用,以从不同的集合中检索各种额外的用户信息。

我可以很好地分别管理这两个操作,但是很明显,只有在第一个调用成功之后才真正进行后一个调用。我想这与git rm --cached -f BackEnd # no trailing slash git add BackEnd 有关,但是我不知道该怎么做。应该指出,尽管尝试过,但我没有找到类似的问题/答案,但都找到了类似的问题,并且都能以我无法理解的方式匹配该解决方案。

mergeMap

这是我最初的努力。我希望console.log会(以某种方式)返回两个调用的数据。而是记录一个空数组。

有人可以在这里指出正确的方向吗?

1 个答案:

答案 0 :(得分:0)

我看到两个值得强调的地方。

1)在提交中,您要访问两次调用返回的数据:

这可以通过以下方式完成

.mergeMap(user => this._userMetaData.getData(user.uid) .map(data => ({user, data}) )

在这里,您基本上是通过最后一个map创建一个返回,该返回是一个对象,它同时引用第一次调用返回的用户和​​第二次调用返回的数据

2)在日志中,您会看到一个空数组:

在这里您需要查看逻辑,因为根据当前代码,您应该在日志中看到第二次调用的结果