我有以下代码,我希望它应该为
scheduleEntries
数组中的每个成员发出,并且我希望跳过每个数组成员的第一次发出。我怎样才能让它工作?
现在它根本不发射
skip(1)
import { Observable, from, mergeMap, of, repeat, skip, timer } from 'rxjs';
class Schedule {
private scheduleEntries = [
{ value: true, countdown: 48395 },
{ value: true, countdown: 38395 },
{ value: false, countdown: 42394 },
{ value: true, countdown: 4835 },
];
private lockEmitter$: Observable<ScheduleEntry>;
constructor() {
this.lockEmitter$ = from(this.scheduleEntries).pipe(
skip(1), // skip the first emission for each entry
mergeMap(entry => of(entry).pipe(
repeat({ delay: () => this.delayedObservableFactory(entry) }),
)),
);
this.lockEmitter$.subscribe(console.log);
}
private delayedObservableFactory(entry: ScheduleEntry) {
return new Observable(observer => {
timer(entry.countdown).subscribe(() => observer.next({}));
});
}
}
interface ScheduleEntry {
value: boolean;
countdown: number;
}
您认为需要在管道之前移动料斗吗?