提交表单 - 由于漫长的过程而卡住

时间:2016-06-02 12:18:06

标签: forms asynchronous angular dart

我正在使用dart angular2开发一个webapp。当我提交表单时,浏览器卡住(处理时间可能很长)。有没有办法异步进行?

我的模板中有:

 <form (ngSubmit)="onSubmit()"

和相应的方法:

onSubmit() async {
   longProcess();
}

方法&#39; longProcess()&#39;不会呼叫服务器。只有本地计算。

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

longProcess()很可能已经执行了异步。

问题是浏览器只有一个线程。即使在处理异步处理的情况下,它也会在所有JavaScript运行的同一个线程中运行。 执行一个任务时,其他任务不能同时处于活动状态。 如果您可以将大任务拆分为许多较小的任务,然后将这些较小的任务称为异步,则可以在执行下一个较小的任务之前完成其他等待任务。

JavaScript可以利用WebWorkers创建其他内容。如果代码在这样的WebWorker线程中运行,则它不会阻塞主线程。

有关WebWorkers的更多详细信息,请参阅Web workers in Angular 2 Dart