在 JavaScript 中休眠 - 操作之间的延迟

2022-08-30 02:37:09

有没有办法在JavaScript执行另一个操作之前先在JavaScript中睡觉?

例:

var a = 1 + 3;
// Sleep 3 seconds before the next action here.
var b = a + 4;

答案 1

您可以使用来实现类似的效果:setTimeout

var a = 1 + 3;
var b;
setTimeout(function() {
    b = a + 4;
}, (3 * 1000));

这并没有真正“休眠”JavaScript - 它只是执行在一定持续时间(以毫秒为单位指定)后传递到的函数。虽然可以为JavaScript编写睡眠函数,但如果可能的话,最好使用,因为它不会在睡眠期间冻结所有内容。setTimeoutsetTimeout


答案 2

如果你真的需要一个只是为了测试一些东西。但请注意,在调试时,大多数时候它会使浏览器崩溃 - 可能这就是您无论如何都需要它的原因。在生产模式下,我将注释掉此函数。sleep()

function pauseBrowser(millis) {
    var date = Date.now();
    var curDate = null;
    do {
        curDate = Date.now();
    } while (curDate-date < millis);
}

不要在循环中使用,除非您想浪费内存,处理能力,电池以及设备的使用寿命。new Date()