Python while 循环转换为 Javascript

IT技术 javascript python
2021-02-10 03:54:58

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

我将如何转换以下内容:

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

进入javascript?

2个回答

你不会,因为 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();
@Brian:假设“在每个异步事件上都会发生同步的单线程执行”
2021-03-16 03:54:58
“它是同步的和基于事件的”——你的意思是 _a_synchronous,对吗?
2021-03-21 03:54:58
处理我的建议的好方法——比我想出的要好。太糟糕了,我已经给了你 +1,不能再给你了。
2021-04-03 03:54:58
+1。但值得一提的是,如果“做某事”需要 1 秒,则setInterval可能会在 0、2、4、8、10、……秒时调用它,而 OP 的 Python 代码将在 0、3、6 秒运行, 9, 12, ... 秒。(为此,您可以在回调结束时使用setTimeout并安排一个新setTimeout的。)
2021-04-09 03:54:58
setInterval(function() {
  console.log('do something');
}, 2000);

http://jsfiddle.net/rS9bH/