gpt4 book ai didi

javascript - 同步处理可观察订阅事件

转载 作者:行者123 更新时间:2023-11-30 20:55:13 24 4
gpt4 key购买 nike

我正在寻找一种方法来以同步方式处理来自 ReplaySubject.subscribe() 的事件。

let onSomeEvent = new ReplaySubject();

onSomeEvent.subscribe(async (event) => {
return await this.saveEventToDb(event);
});

在此示例中,saveEventToDb() 首先检查数据库是否已存储具有相同 ID 的事件。如果没有,它存储它。

问题是我需要考虑从主题触发的重复事件。

在此示例中,当 2 个重复事件接连触发时,都被添加到数据库中,因为 saveEventToDb() 被立即调用两次,而没有等待上一个调用完成。

我如何使用 Rxjs 将它们排队?

最佳答案

以下用于同步处理事件:

onSomeEvent
.map(event => {
return Observable.defer(() => {
return this.saveEventToDb(event);
});
})
.concatAll()
.subscribe();

ConcatAll() :收集可观察对象并在上一个完成时订阅下一个。

关于javascript - 同步处理可观察订阅事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47746524/

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