我有一段代码需要在延迟 5000 毫秒后执行。目前我正在使用 setTimeout 但它是异步的,我希望执行等待它返回。我尝试使用以下内容:
function pauseComp(ms)
{
var curr = new Date().getTime();
ms += curr;
while (curr < ms) {
curr = new Date().getTime();
}
}
但是我想延迟的代码是使用 raphaeljs 绘制一些对象并且显示一点也不流畅。我正在尝试使用 doTimeout 插件。我只需要延迟一次,因为延迟和要延迟的代码都在一个循环中。我不需要 ID,所以我没有使用它。例如:
for(i; i<5; i++){ $.doTimeout(5000,function(){
alert('hi'); return false;}, true);}
这等待 5 秒,然后给出第一个 Hi,然后连续的循环迭代在第一个之后立即显示警报。我想让它做的是等待 5 秒再次发出警报等待然后发出警报等等。
任何提示/建议表示赞赏!
原文由 kavita 发布,翻译遵循 CC BY-SA 4.0 许可协议
已接受答案的变体与这个答案一样好。
此外,我同意偏好
setTimeout
和异步函数调用的注意事项,但有时,例如,在构建测试时,你只需要一个同步等待命令……如果你想要以秒为单位,请在 while 检查时将开始毫秒除以 1000 …