红灯亮一秒,然后黄灯亮两秒,然后绿灯亮三秒,重复红灯
之前用Promise实现过,见https://github.com/swordrain/traffic-light
现在发现async / await解决该问题更方便,更符合人的思维,寥寥数语而可安邦定国。
function wait(time) {
return new Promise(resolve=>{
setTimeout(resolve, time)
})
}
async function red() {
console.log('Red:' + new Date())
await wait(1000)
yellow()
}
async function yellow() {
console.log('Yellow:' + new Date())
await wait(2000)
green()
}
async function green() {
console.log('Green:' + new Date())
await wait(3000)
red()
}
red()
可见使用async / await后完全就是自然语言逻辑的翻译,毫无异步代码的烦琐。输出结果也木有问题
如需转载,请注明文章出处和来源网址:http://www.divcss5.com/html/h64076.shtml