В моем коде я открываю matDialog
, позволяющий извлекать XLSX.
При открытии этого matDialog
данные загружаются в ngOnInit()
, что может занять некоторое время.Вот почему я использую combineLatest()
с filter()
, что позволяет мне ждать результатов трех запросов, чтобы разрешить извлечение.Теперь я хотел бы добавить mat-progress-bar determinate
, чтобы увидеть, куда идет добыча.Для этого я хотел бы иметь возможность изменять мою переменную progress
с каждым полученным результатом.
Поэтому я использовал map(result => {this.progress = this.progress + 30;}
в каждом запросе, чтобы увеличить прогресс.Это работает, но ломает мой combineLatest()
.Прогресс останавливается на 90%, и я не могу найти решение.
Код:
this.subscriptions$.add(combineLatest([
this.storeWallets.loadInvoiceExtractionProduct(this.selectedWallet).pipe(
//map(result => { this.progress = this.progress + 30; }),
catchError(err => {
console.error(err.message);
return of(err);
})
),
this.storeWallets.loadInvoiceExtractionSupport(this.selectedWallet).pipe(
//map(result => { this.progress = this.progress + 30; }),
catchError(err => {
console.error(err.message);
return of(err);
})
),
this.storeWallets.loadInvoiceExtractionTraining(this.selectedWallet).pipe(
//map(result => { this.progress = this.progress + 30; }),
catchError(err => {
console.error(err.message);
return of(err);
})
),
]).pipe(
filter(results => results.every(res => !!res))
).subscribe(results => {
//this.progress = 100;
document.body.style.cursor = "default";
this.waitExtraction = false;
})
);
Спасибо за вашу помощь.