Я создал интервал, который выполняется каждую секунду. Внутри этого интервала у меня есть цикл for, который отправляет запрос на сервер и генерирует Observable.
Я хочу остановить интервал, когда условие становится истинным.
Хотя условие истинно, интервал продолжается.
private setStatusChecker() {
const taskInterval = setInterval(() => {
this.uploadedFiles.forEach((task, index) => {
if (this.uploadedFiles.length === this.completedTasksNumber || this.stopGetUploadStatusInterval === true) {
clearInterval(taskInterval);
this.uploadingProcessActive = false;
this.stopGetUploadStatusInterval = true;
}
if (task.state !== 'SUCCESS') {
this.getUploadStatus(task.id).subscribe((response: any) => {
if (response.info === null) {
return;
}
const fileStatus: UploadStatus = {
id: task.id,
state: response.state,
};
this.uploadedFiles[index] = fileStatus;
});
}
if (task.state === 'SUCCESS') {
this.completedTasksNumber++;
task.state = 'COMPLETED';
}
});
this.uploadedFilesCurrentStatus.next(this.uploadedFiles);
}, 1000);
}