您好,欢迎访问一九零五行业门户网

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怎么实现红绿灯的详细内容。
其它类似信息

推荐信息