由于JavaScript官方没有内置的睡眠函数,但有如下两种方法来使代码暂停执行指定的时间
使用
setTimeout()
JavaScript的setTimeout()方法设置一个计时器,只有当计时器到期后,回调中的代码才会执行
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搭配async、await关键字来实现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)
请注意:
Promise和setTimeout()都是JavaScript中处理异步操作的方法。