我有一个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);
});
}
}
答案 0 :(得分:1)
是的,您可以使用startWith运算符,它将向您的观察对象发出第一个值。
因此,如果您希望它立即开始,请将其值设为0,例如startWith(0)
。
在您的示例中,它看起来像这样
Observable.interval(600000)
.subscribe((data) => {
this.result.next(true);
}).startWith(0);
答案 1 :(得分:1)
您可以使用Observable.timer(0,600_000).subscribe等。 这将立即开始,并根据需要每十分钟发出一个值。