Javascript 同步处理可观察的订阅事件
我正在寻找一种以同步方式处理来自Javascript 同步处理可观察的订阅事件,javascript,rxjs5,Javascript,Rxjs5,我正在寻找一种以同步方式处理来自ReplaySubject.subscribe()的事件的方法 let onSomeEvent = new ReplaySubject(); onSomeEvent.subscribe(async (event) => { return await this.saveEventToDb(event); }); 在本例中,saveEventToDb()首先检查数据库是否已存储具有相同ID的事件。如果没有,则存储它 问题是我需要解释从主体触发
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();
:收集观测值,并在上一个完成时订阅下一个