我正在创建一个应用程序,希望用户打开他们的活动聊天。它由Firebase作为后端提供动力。但是,在从第一个可观察订阅中检索数据(我需要将其用作第二个可观察订阅中的参数)之后,第二个订阅不会返回任何数据:它是空的。
在第一个订阅中,我检索一个唯一的ChatID。对于第二次订阅,我希望使用此ChatID接收Firebase集合中的所有邮件。
我已经发现它与观测对象的异步风格有关,但是我不知道如何嵌套观测对象,因为FlatMap和MergeMap都不适用于我的观测对象。
//First subscription
this.ActieveGebruikerObservable = this.firebaseService.Gebruiker_lezen(this.ActieveGebruiker.uid);
this.ActieveGebruikerObservable.subscribe(
val => this.ActieveGebruikerDetails = val
);
//Second subscription
this.ActieveChatObservable = this.firebaseService.Chat_lezen(this.ActieveGebruiker.uid, this.ActieveGebruikerDetails.ActieveChat);
this.ActieveChatObservable.subscribe(
val => this.ActieveChatDetails = val
);
所以好像是这个。活动的详细信息。activeChat
作为参数输入第二个订阅时为空。但是,当我在页面上将其显示为{{this.activegebruikerdetails.activechat}}
时,它返回所需的值。
我想检索第二个订阅数据,而不是空白数据。
也许你可以使用RxJS操作符来连接这些可观察的对象。喜欢
一些服务。开关映射(val)=
查看mergeMap
(flatMap
=mergeMap
)
因为您没有给出第一个可观察对象的名称,所以我将其命名为foo
foo.pipe(
tap(val => this.ActieveGebruikerDetails = val), // If you still wanted it present on `this`, but not needed
mergeMap(val => this.firebaseService.Chat_lezen(this.ActieveGebruiker.uid,val.ActieveChat) // map to the firebase observable, using the value from the previous observable, allowing you to access ActieveChat
).subscribe(
val => this.ActieveChatDetails = val
);
我正在将angular 2组件转换为使用异步数据源。 我有一个<代码> 这会导致错误: 找不到类型为“object”的不同支持对象“[object]”。NgFor只支持绑定到数组之类的可重用文件。 我试过
我有一个带有http请求的服务,它返回我的标题的可观察到的内容 servise.ts 在我的组件中,我有一个函数从service get Request设置。看起来是这样的: 问题是,有时我接收到带有空标签的标题,不需要显示它们,所以我需要对其进行过滤,并对此标题发送.delete()请求。我尝试了类似的方法(想法是在之前添加,然后在另一个subscribe内部调用。)差不多吧 但不确定这是不是个
我用reactiveX Zip做了一些实验,我注意到我在zip中定义的可观察性是一个接一个地执行的。我认为zip的好处是,zip中定义的每一个可观察到的线程都是由一个线程执行的,所以所有这些线程都是并行执行的。有什么方法能达到我想要的吗?。这是我的zip例子
我有一个可观察的对象,它从数据库游标的快速流中生成数据。我希望以每秒x项的速度限制输出。到目前为止,我一直在使用文档中所述的调用堆栈阻塞: 这很好,但出于好奇,是否有更好的方法使用背压来处理此问题? Tks公司
我试着把我的头绕在可观察的物体上。我喜欢Observable解决开发和可读性问题的方式。正如我读到的,好处是巨大的。 HTTP和集合上的可观察对象似乎是直截了当的。我怎样才能把这样的东西转换成可观察的模式呢。 这来自我的服务组件,用于提供身份验证。我希望它能像Angular2中的其他HTTP服务一样工作——支持数据、错误和完成处理程序。 这里的任何帮助都将不胜感激。我唯一的替代解决方案是创建s。但
在组件中: 在init上,我可以观察到 如何获取当前值,如?