我正在用dart angular2开发一个webapp。提交表单时,浏览器卡住了(处理时间可能会很长)。有没有一种异步方法?
我的模板中有:
<form (ngSubmit)="onSubmit()"
以及相应的方法:
onSubmit() async {
longProcess();
}
方法“longProcess()”不会调用服务器。仅本地计算。
谢谢你的帮助。
最佳答案
longProcess()
很可能已经异步执行。
问题在于浏览器只有一个线程。即使异步处理某些内容,它也会在同一线程中运行,您的所有JavaScript都会运行。
执行一项任务时,无法同时激活其他任务。
如果您可以将大型任务分解为许多较小的任务,然后异步调用这些较小的任务,则可以在执行这些较小任务中的下一个任务之前执行其他等待任务。
JavaScript可以利用WebWorkers来创建其他内容。如果代码在这样的WebWorker线程中运行,则不会阻塞主线程。
有关WebWorkers的更多详细信息,请参见Web workers in Angular 2 Dart。
关于forms - 提交表单-由于过程漫长而卡住,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37591667/