Angular - продолжайте выполнять фоновый процесс даже после перехода на другой маршрут - PullRequest
0 голосов
/ 03 апреля 2020

Мой компонент отправляет данные через форму, вызывая процесс импорта БД на сервер. Хотя этот процесс может занять некоторое время, я делаю запросы каждые 3 секунды, чтобы получить информацию, связанную с импортом, и отобразить ее в таблице.

public importProgress = [];
public subscription: Subscription;

onSubmit(submitObj) {
    this.checkImportProgress();

    this.clientService.beginImport(submitObj).subscribe(
        result => {
          this.subscription.unsubscribe();
          console.log('Import is done!');
        },
        error => {
          this.subscription.unsubscribe();
          console.log(error);
        }
    );
}

checkImportProgress() {
    this.subscription = interval(1000).subscribe(() => {
        this.clientService.checkImportProgress().subscribe(
            result => {
              this.importProgress.push(result);
            },
            error => {
              console.log(error);
            }
        );
    });
}

Проблема заключается в том, что при переходе на другой маршрут (оставляя компонент ) процесс пользовательского интерфейса как-то остановлен. Я предполагаю, что это потому, что я инициализирую переменную, в которой я сохраняю процесс импорта, с пустым массивом.

Но как я могу продолжить этот процесс в фоновом режиме?

...