有时前端想实现 代码停止几秒再执行后续代码,可能会受到异步执行的困扰。
那下面的方法就可以实现同步阻塞的效果,把阻塞的代码放到blockForThreeSeconds().then(()中即可
//阻塞2秒函数
function blockForThreeSeconds() {
return new Promise(resolve => {
setTimeout(resolve, 2000);
});
}
console.log('开始阻塞...' + new Date().getTime());
blockForThreeSeconds().then(() => {
console.log('此处写阻塞之后的代码');
console.log('阻塞结束。' + new Date().getTime());
});
console.log('这句不会阻塞,blockForThreeSeconds方法内部才是阻塞的');