1.promise
const sleep=(time)=>{
return new Promise(resolve=>
setTimeout(resolve,time)
)
}
sleep(2000).then(()=>{
console.log('sleep...')
})2.async/await
const sleep=(time)=>{
return new Promise(resolve=>
setTimeout(resolve,time)
)
}
async function sleepAsync(){
console.log('sleep start...')
await sleep(2000);
console.log('sleep end...')
}
sleepAsync()3.generator
const sleep=(time)=>{
return new Promise(resolve=>
setTimeout(resolve,time)
)
}
function* sleepGenerator(){
yield sleep(2000)
}
sleepGenerator().next().value.then(()=>{
console.log('iam middle')
})4.es5 setTimeout
function sleep(cb,time){
if(typeod cb === 'function'){
setTimeout(cb,time)
}
function output(){
console.log('1')
}
sleep(output,1000);