JavaScript怎么实现sleep睡眠函数

2024-04-09

在JavaScript中,由于语言的单线程执行特性,通常不能直接实现一个类似于其他语言中的sleep函数来让程序暂停执行一段时间。不过可以通过使用setTimeout函数来模拟实现一个类似的功能。

以下是一个使用setTimeout函数实现的sleep函数的示例:

function sleep(ms) {
    return new Promise(resolve => setTimeout(resolve, ms));
}

// 使用示例
async function demo() {
    console.log('Start');
    await sleep(2000); // 等待2秒
    console.log('End');
}

demo();

在上面的示例中,sleep函数接受一个毫秒数作为参数,返回一个Promise对象,通过await关键字可以让程序等待指定的时间后再继续执行后续代码。在demo函数中的await sleep(2000)表示让程序等待2秒后再打印End

需要注意的是,sleep函数是一个异步函数,因此在使用时需要在async函数中进行调用。