【发布时间】:2018-01-23 04:26:17
【问题描述】:
问题是:我有一个简单的组件,它呈现一些消息的“历史”。当应用程序加载时,它会发出 POST 请求,获取数据并将数据设置为 Observable,就像这样
this.messages$ = Observable.of(messagesAfterPOSTRequest);
在哪里public messages$: Observable<any>;
此数据通过异步管道在模板中呈现:
let message of messages$ | async
效果很好,但是....
我通过 websocket 收到一些“新消息”,所以我想更新在上一步创建的列表。我正在尝试使用scan()
this.messages$ = this.messages$.scan((accMessage, numMessage) => {
console.log("inside current mesages", accMessage, numMessage)
});
为了“更新”当前列表消息,但是这个 console.logs 看起来永远不会工作,即使使用 subscribe()
【问题讨论】:
-
您确定要在此处分配
this.messages$:this.messages$ = this.messages$.scan(...)? -
可能在 scan() 内部?
-
您可以使用下面答案中描述的主题,或将
messages$创建为this.messages$ = Observable.webSocket(apiURL)
标签: angular rxjs observable