有时前端想实现  代码停止几秒再执行后续代码,可能会受到异步执行的困扰。

那下面的方法就可以实现同步阻塞的效果,把阻塞的代码放到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方法内部才是阻塞的');

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐