javascript怎么实现红绿灯
导读:收集整理的这篇文章主要介绍了javascript怎么实现红绿灯,觉得挺不错的,现在分享给大家,也给大家做个参考。javascript实现红绿灯的方法:1、使用setTimeout和递归来实现循环改变颜色;2、使用Promise,并把下一次的...
收集整理的这篇文章主要介绍了javascript怎么实现红绿灯,觉得挺不错的,现在分享给大家,也给大家做个参考。javascript实现红绿灯的方法:1、使用setTimeout和递归来实现循环改变颜色;2、使用Promise,并把下一次的颜色改变写在then里面;3、使用async await和while实现红绿灯效果。
本教程操作环境:windows7系统、javascript1.8.5版本、Dell G3电脑。
javascript怎么实现红绿灯?
JavaScript 实现红绿灯
使用setTimeout、PRomise、async awaIT 三种方式实现红绿灯代码,红灯2秒,黄灯1秒,绿灯3秒,循环改变颜色。改变颜色的方法,就简单写成打印出颜色。
setTimeout实现
使用setTimeout是最基本的实现方式,代码如下,使用递归来实现循环改变颜色。
function changeColor(color) {
console.LOG('traffic-light ', color);
}
function main() {
changeColor('red');
setTimeout(()=>
{
changeColor('yellow');
setTimeout(() =>
{
changeColor('green');
setTimeout(main, 2000);
}
, 1000);
}
, 2000);
}
main();
Promise 实现
使用Promise,把下一次的颜色改变写在then里面,最后同样使用递归完成循环。
function sleep(duration){
return new Promise(resolve =>
{
setTimeout(resolve, duration);
}
)}
function changeColor(duration,color){
return new Promise(resolve =>
{
console.log('traffic-light ', color);
sleep(duration).then(resolve);
}
)}
function main() {
return new Promise(resolve =>
{
changeColor(2000, 'red').then(() =>
{
changeColor(1000, 'yellow').then(() =>
{
changeColor(3000, 'green').then(() =>
{
main();
}
)}
)}
)}
)}
main();
async await 实现
使用async await就可以避免Promise的一连串.then.then.then,也不再需要递归,使用while就可以实现循环。
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() {
while (true) {
await changeColor('red', 2000);
await changeColor('yellow', 1000);
await changeColor('green', 3000);
}
}
main();
推荐学习:《javascript基础教程》
以上就是javascript怎么实现红绿灯的详细内容,更多请关注其它相关文章!
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: javascript怎么实现红绿灯
本文地址: https://pptw.com/jishu/592908.html
