第一种暂停的方法是使用while循环来判断时间间隔是否满足条件

function sleep(delay) {
var start = (new Date()).getTime();
while((new Date()).getTime() - start < delay) {
continue;
}
}

第二种方式是使用for循环实现,原理和第一种方式是一样的
function sleep(delay) {
for(var t = Date.now(); Date.now() - t <= d;);
}

如果使用setTimeout或者setInterval的话,他们是非阻塞的方法,所以程序并不会等待时间满足才往下执行,而是会直接就往下执行,等到设定的时间到了,再调用传入到它内部的回调方法。