【发布时间】:2014-04-03 06:25:19
【问题描述】:
我有这样的javascript函数:
function myFunction(number) {
var x=number;
...
... more initializations
//here need to wait until flag==true
while(flag==false)
{}
...
... do something
}
问题是javascript卡在while中并卡住了我的程序。所以我的问题是如何在没有“忙等待”的情况下在函数中间等待直到标志为真?
【问题讨论】:
-
使用 promise 模式进行初始化 - 可以在很多库中找到,例如
jQuery.Deferred、Q、async、... -
具体在哪里使用以及如何使用?
-
有很多关于描述各种库的承诺实现的教程,例如。 jQuery.Deferred 或 Q。顺便说一句,您的根本问题与this question 中的相同。
-
对于 2018 年阅读这篇文章的人来说,除了 Opera mini 和 IE11 之外,所有浏览器都支持 Promise。
-
主要问题是在事件驱动的单线程js中不可能做到真正的阻塞(睡眠)等待。您只能创建等待处理程序。查看更多:stackoverflow.com/questions/41842147/…
标签: javascript synchronization