我需要处理一个可观察的输出,在该可观察的停止发射3秒钟之后...所以我使用了delayWhen(x => originalObservable.pipe(debounceTime(3000)))...为什么C物品丢失了? ...
//in$ is a Subject
in$.pipe(
tap(x=> log(4,'item '+x.name+' arrived, wait debounce time...') ),
delayWhen( () => in$.pipe(debounceTime(3000)) ),
tap(x=> log(4,'debounce time passed for item '+x.name+', go ahead...'))
).subscribe
//the log is
/*
itme A arrived, wait debounce time...
itme B arrived, wait debounce time...
itme C arrived, wait debounce time...
debounce time passed for item A, go ahead...
debounce time passed for item B, go ahead...
*/
已解决...
let timePassed = 0
setInterval(()=>{
timePassed += 100;
},100)
let timer = of(timePassed>3000).pipe(filter(x=>x==true))
in$.pipe(
tap(x=> {
timePassed = 0;
log(4,'item '+x.name+' arrived, wait debounce time...')
}),
delayWhen( () => timer ),
tap(x=> log(4,'debounce time passed for item '+x.name+', go ahead...'))
).subscribe