3

可能重复:
在 Javascript 中休眠
如果我想要一个 JavaScript 版本的 sleep(),我该怎么办?

我将如何转换以下内容:

while True:
    # do something
    time.sleep(2)

进入javascript?

4

2 回答 2

10

你不会,因为 JavaScript 不会休眠——它是同步的和基于事件的。setTimeout但是,您可以通过和安排稍后执行的功能setInterval

var timerid = setInterval(function() {
    // do something
    // instead of "break", you'd use "clearTimeout(timerid)"
}, 2000);

对于您的 ajax 进度条,我推荐以下内容,它不会严格每 2 秒触发一次请求,而是等待它们返回:

function getUpdate() {
    myAjax(…, function onAjaxSuccess(result) { // an async event as well
        // show(result)
        if (!result.end)
            setTimeout(getUpdate, 2000);
    });
}
getUpdate();
于 2013-01-14T22:10:51.033 回答
0
setInterval(function() {
  console.log('do something');
}, 2000);

http://jsfiddle.net/rS9bH/

于 2013-01-14T22:11:33.977 回答