gpt4 book ai didi

angular - 如何更新异步管道中使用的 Observable?

转载 作者:行者123 更新时间:2023-12-05 06:38:38 25 4
gpt4 key购买 nike

问题是:我有一个简单的组件,它呈现消息的一些“历史记录”。加载应用程序时,它会发出 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() 也是如此

最佳答案

使用 Subject 的实例并将消息推送到其中:

const subject$ = new Subject();

...

subject.next(messagesAfterPOSTRequest);

...然后使用 async 管道以相同的方式使用模板。

如果您也希望能够获取以前的消息,也许还可以查看 ReplaySubjectBehaviorSubject 类。

关于angular - 如何更新异步管道中使用的 Observable?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45689641/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com