js sleep 休眠延迟程序
当我们请求数据后台返回的太快,loading效果一点看不出来可以试试弄个休眠延迟程序试试
方法一:这种实现方式是利用一个伪死循环阻塞主线程。因为JS是单线程的。所以通过这种方式可以实现真正意义上的sleep()。
function sleep (delay) {
var start = (new Date()).getTime();
while ((new Date()).getTime() - start < delay) {
continue;
}
}
function test () {
console.log('111');
sleep(2000);
console.log('222');
}
test()
方法二:es6异步处理
const sleep = time => {
return new Promise(resolve => setTimeout(resolve, time)
)
}
sleep(2000).then(() => { console.log(1) })
方法三:es7---- async/await是基于Promise的,是进一步的一种优化
const sleep = time => {
return new Promise(resolve => setTimeout(resolve, time)
)
}
async function test () {
console.log(111);
await sleep(2000)
console.log(222);
}
test()