Angult NGX引导程序模式开放太晚了

问题描述

我正在尝试使用NGX引导程序和模式创建进度条对话框。目前,我正在这样做:

generateDownload(distance: distanceSplit) {
    console.log('generateDownload');

    this.dialogWait = this.dialogs.wait('Wait');

    list.forEach((distance,index) => {
        ...

        this.dialogWait.setProgress(i);
        ...
    });

    return tabledata;
}

在DialogsService中:

public wait(title: string,message: string,percentage: number,settings?: any): BsModalRef {
    ...
    return this.modalService.show(DialogsComponent,Object.assign({},this.options,settings));
}

问题是仅在list.forEach循环结束时才显示对话框。如何在列表开始运行之前强制显示对话框?有人有类似的问题和一些有效的代码吗?

解决方法

modalService.show应该是一个同步方法。

您是否使用console.log调试了序列:

generateDownload(distance: DistanceSplit) {

    this.dialogWait = this.dialogs.wait('Wait');

    //Adding breakpoint here
    console.log('generateDownload');

    list.forEach((distance,index) => {
    ...

    this.dialogWait.setProgress(i);
    ...
    });

    return tabledata;
}