2

私のコードでは、matDialog許可する XLSX 抽出を開きます。

この を開くmatDialogと、データが に読み込まれますngOnInit()。これには時間がかかる場合があります。そのため、3 つのクエリの結果が抽出されるまで待機できるようにcombineLatest()withを使用しています。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;
    })
);

ご協力いただきありがとうございます。

4

1 に答える 1