实现sleep的效果

(1)while循环:

容易造成死循环

 

代码:

function sleep(ms) {

            var start = Date.now();

            var expires = start + ms;

            while(Date.now() < expires);

            console.log('1111);

            return;

}

 

执行sleep(1000)之后,休眠了1000ms之后输出了1111。上述循环的方式缺点很明显,容易造成死循环。

(2)promise:

代码:

function sleep(ms) {

         return new Promise( (resolve) => {

              console.log("1111");

              setTimeout(resolve, ms);

})

}

sleep(500).then( () => {

           console.log("2222");

})

先输出了1111,延迟500ms后输出222

 

(3)通过async封装

代码:

function sleep(ms) {

         return new Promise( (resolve) => setTimeout(resolve, ms) );

}

async function test() {

       var temple = await sleep(1000);

       console.log(1111);

       return temple; 

}

test();

延迟1000ms输出了1111

 

posted @ 2022-03-15 21:48  方头小小狮  阅读(82)  评论(0)    收藏  举报