立即调用 interval() 而不会扭曲其间隔
call an interval() immediately without distoring its intervals
我有一个 Observable.interval(600000) 运行 每 10 分钟一次。一个组件订阅了它并且运行良好。但我想要的是,是否可以在应用加载时自动 运行 而不会影响其 600000 毫秒的间隔时间?
注意:为了说明问题,代码被大大缩短了。
@Injectable()
export class CalculateService {
result: Subject<any> = new Subject<any>();
constructor(
) {
Observable.interval(600000)
.subscribe((data) => {
this.result.next(true);
});
}
}
是的,您可以使用 startWith 运算符,它会将第一个值发送到您的 observable。
因此,如果您希望它立即开始,请将值设为 0,例如 startWith(0)
。
在您的示例中,它看起来像这样
Observable.interval(600000)
.subscribe((data) => {
this.result.next(true);
}).startWith(0);
您可以使用 Observable.timer(0, 600_000).subscribe 等。
这将立即开始并每十分钟发出一个值,如您所愿。
我有一个 Observable.interval(600000) 运行 每 10 分钟一次。一个组件订阅了它并且运行良好。但我想要的是,是否可以在应用加载时自动 运行 而不会影响其 600000 毫秒的间隔时间?
注意:为了说明问题,代码被大大缩短了。
@Injectable()
export class CalculateService {
result: Subject<any> = new Subject<any>();
constructor(
) {
Observable.interval(600000)
.subscribe((data) => {
this.result.next(true);
});
}
}
是的,您可以使用 startWith 运算符,它会将第一个值发送到您的 observable。
因此,如果您希望它立即开始,请将值设为 0,例如 startWith(0)
。
在您的示例中,它看起来像这样
Observable.interval(600000)
.subscribe((data) => {
this.result.next(true);
}).startWith(0);
您可以使用 Observable.timer(0, 600_000).subscribe 等。 这将立即开始并每十分钟发出一个值,如您所愿。