参考回答:
(1)while循环的方式
function sleep(ms){var start=Date.now(),expire=start+ms;while(Date.now()<expire);console.log('1111');return;}执行sleep(1000)之后,休眠了1000ms之后输出了1111。上述循环的方式缺点很明显,容易造成死循环。
(2)通过promise来实现
function sleep(ms){var temple=new Promise((resolve)=>{console.log(111);setTimeout(resolve,ms)});return temple}sleep(500).then(function(){//console.log(222)})//先输出了111,延迟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
(4).通过generate来实现



