将变量添加到变量 Observable <>

弗洛里安

我有一个 Observable 变量:

messages: Observable<Message[]>;

我想向这个 Observable 变量添加变量。由于这是 Message: Message [] 的集合,我想向其中添加 Message 变量:

const newMessage = new Message(objMessage);

我不知道如何做到这一点,我试过了,但它不起作用,因为它用于无可观察变量:

newThread.messages = [newMessage];

或这个 :

newThread.messages.subscribe((message: Message) => {
  newThread.messages = message;
});

///////////////////////////////////////////////// ///////////////////////////////////////////////// ///////////////////////////////////////////////// //////// 编辑

我在我的 thread.model.ts 中初始化我的变量消息:

messages: Observable<Message[]> = new Observable<Message[]>();

我在另一个服务 chat.service.ts 中初始化我的变量 newThread.messages :

newThread.messages.next(newMessage);

但这给我带来了这个错误:

Property 'next' does not exist on type 'Observable<Message[]>'

普拉克链接:

https://plnkr.co/edit/aNzWu2ShO55bk3fRJ5ya?p=catalogue

///////////////////////////////////////////////// ///////////////////////////////////////////////// ///////////////////////////////////////////////// ////// 编辑

我刚刚意识到它不像我想要的那样工作。当有多个消息时,这不起作用。根据我所做的,第二条消息删除了第一条消息。虽然我希望变量thread.messages包含一堆消息。

所以我尝试使用 .next 方法,但这使我出错。

export class Thread {
  id: string;
  messages: BehaviorSubject<Message[]>;
}

const newThread: Thread = new Thread(objMessage.id, [newUser],objMessage.title);
const newMessage = new Message(objMessage);
newThread.messages.next([newMessage]);


Cannot read property 'next' of undefined ; Zone: <root> ; Task: Promise.then ; Value: TypeError: Cannot read property 'next' of undefined

或这个 :

private subject = new Subject<Message[]>();

this.subject.next([newMessage]);

thread.messages.subscribe((messages: Message[]) => {
   messages = this.subject.asObservable();
});

你知道为什么吗 ?

利亚凯·侯赛因

使用 .next() 方法通过添加新的行为主体在可观察流数据中添加数据

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章