// promise 在ES6的語法中,Promise是sleep方法異步的實現(xiàn)一種方式,借助Promise方法可以優(yōu)雅的構建sleep實現(xiàn)方法,避免了使用函數(shù)回調(diào)的使用方式。
let fun = () => console.log('time out');
let sleep2= (time)=> new Promise((resolve)=>{
setTimeout(resolve,time)
})
sleep2(2000).then(fun);
async await 使用
使用async await就可以避免Promise的一連串.then.then.then,
function sleep(duration) {
return new Promise(resolve => {
setTimeout(resolve, duration);
})
}
async function changeColor(color, duration) {
console.log('traffic-light ', color);
await sleep(duration);
}
async function main() {
await changeColor('red', 2000);
await changeColor('yellow', 1000);
await changeColor('green', 3000);
}
main();