[英]Wait until function is complete
在另一个线程中获得一些帮助之后,我现在有了一个工作代码,该代码等待3000,然后将一个变量设置为1。然后循环检查每1000个变量,直到该变量已更改,然后发出警报。
var myvalue; setTimeout(function() { myvalue = 1; }, 3000); function check() { if (myvalue == 1) { alert("Value Is Set"); } else { setTimeout(check, 1000); } } alert("debug1"); check(); alert("debug2");
我现在的问题是,它不会等到check()
函数完成后再继续操作。 我添加了一些调试alert
,可以看到所有alert
都立即被触发。
如何使它等待而不使用超时?
您可以传递回调并在函数完成后调用它。
像这样:
var myvalue; setTimeout(function() { myvalue = 1; }, 3000); function check(callback) { if (myvalue == 1) { alert("Value Is Set"); callback && callback(); } else { setTimeout(check, 1000, callback); } } alert("debug1"); check(function() { alert("debug2"); });
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.