超简单!教会你如何在js中实现像Python的睡眠(sleep)函数

83 阅读1分钟

由于JavaScript官方没有内置的睡眠函数,但有如下两种方法来使代码暂停执行指定的时间

使用 setTimeout()

JavaScriptsetTimeout()方法设置一个计时器,只有当计时器到期后,回调中的代码才会执行

const delay = (fn, ms, ...args) => setTimeout(fn, ms, ...args);
const greet = (name) => console.log(`Hello ${name}!`);
delay(greet, 300, 'world');

// Logs: Hello world! (after 300ms)

另一种方法是使用 ES6 Promise搭配asyncawait关键字来实现sleep()函数

const sleep = (ms) => new Promise(resolve => setTimeout(resolve, ms));
const greet = async () => {
    console.log('foo!');
    await sleep(300);
    console.log('bar!');
};
greet();

// Logs: foo!
// Logs: bar!   (after 300ms)

请注意:PromisesetTimeout()都是JavaScript中处理异步操作的方法。