JavaScript中模拟Sleep
2019-08-03 本文已影响0人
知然
JavaScript中本身不支持Sleep功能,但是可以借助某些特性来达到类似的功能
使用的API
- setTimeout
- Promise
- async/await
创建 一个 sleep
函数
function sleep(time = 0) {
return new Promise(resolve => {
setTimeout(resolve, time)
})
}
使用方式
(async () => {
console.info("输出--1-->", Date.now());
await sleep(2000);
console.info("输出--2-->", Date.now());
})();
你会发现 两个 输出之间相差了2秒;
原理就是借助了 延迟和同步的特性.
所以这种做法只有你的代码支持 这几个特性的环境中才能运行.