1

我试图在我的应用程序从 csv 文件加载数据时显示 ngx-bootstrap 进度条。

问题: 用户界面被冻结,直到整个操作结束

我使用 setTimeout 来拆分加载并递归调用它。我还尝试调用 ngZone.run() 和 applicationRef.tick() 和 changeDetectorRef.markForCheck() ...没有任何成功,进度条仅在操作结束时显示为满。

我做了一个更简单的 stackblitz,所以你们可以告诉我如何实现它。我的代码中的 bcs 要简单得多,我将其放入服务中,然后通过 observable 获得结果。但如果这至少有效,我会知道我做错了什么。 https://stackblitz.com/edit/angular-gzdylf

4

1 回答 1

3

在您setTimeout用于拆分您正在执行的工作的示例中:

setTimeout(work());

这意味着您在循环内调用work函数,而不是安排它稍后运行。

您需要对其进行更改以将函数引用传递setTimeout给以使其按预期工作:

setTimeout(work);   // NOTE: `work` and not `work()`
于 2018-03-30T00:17:20.843 回答