如果您使用了 Schedulers ,您可能知道您可以使用其他已经预定义的调度程序,例如 queue,async或asap :
of('', queueScheduler)
of('', asyncScheduler)
of('', asapScheduler)
这差不多是清楚的。
但是,如果您想创建自己的调度程序,例如:延迟5秒怎么办?
,我找不到关于它的任何示例/说明。答案 0 :(得分:0)
我发现最简单的解决方案是扩展AsyncScheduler:
class MyScheduler extends AsyncScheduler {
public schedule<T>(
work: (this: SchedulerAction<T>, state?: T) => void,
delay: number = 0,
state?: T
): Subscription {
return super.schedule(work, delay + 5000, state);
}
}
const myScheduler = new MyScheduler(AsyncAction);
console.time('myScheduler');
of(1).pipe(observeOn(myScheduler)).subscribe(v => console.timeEnd('myScheduler'));
沙盒-https://stackblitz.com/edit/rxjs-my-scheduler?file=index.ts