• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • dedecms
  • ecshop
  • z-blog
  • UcHome
  • UCenter
  • drupal
  • WordPress
  • 帝国cms
  • phpcms
  • 动易cms
  • phpwind
  • discuz
  • 科汛cms
  • 风讯cms
  • 建站教程
  • 运营技巧
您的位置:首页 > CMS教程 >建站教程 > Javascript怎么实现红绿灯

Javascript怎么实现红绿灯

作者:站长图库 字体:[增加 减小] 来源:互联网

站长图库向大家介绍了Javascript红绿灯,js红绿灯等相关知识,希望对您有所帮助

javascript实现红绿灯的方法:1、使用setTimeout和递归来实现循环改变颜色;2、使用Promise,并把下一次的颜色改变写在then里面;3、使用async await和while实现红绿灯效果。


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();


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • Javascript怎么实现红绿灯

相关文章

  • ThinkPHP中if标签和比较标签对于变量的比较
  • phpMyadmin怎么使用空密码登入
  • Photoshop数位板人物设计教程:《主教MM》
  • Photoshop设计立体喜庆的舞台效果图
  • 如何修改织梦5.7版上一页下一页文字和长度
  • 浅谈Bootstrap中的自适应屏幕
  • CSS3怎么实现动画结束不消失效果
  • Photoshop简单制作牛奶效果艺术字
  • 如何解决php json_encode乱码的问题
  • Navicat for MySQL连接MySQL报2005错误怎么办

文章分类

  • dedecms
  • ecshop
  • z-blog
  • UcHome
  • UCenter
  • drupal
  • WordPress
  • 帝国cms
  • phpcms
  • 动易cms
  • phpwind
  • discuz
  • 科汛cms
  • 风讯cms
  • 建站教程
  • 运营技巧

最近更新的内容

    • phpcms v9添加热门搜索关键词的方法
    • 总结PHP中银行卡号通用校验算法
    • PHP遍历读取文件夹中图片并分页显示
    • Discuz3.4特殊字符乱码解决方案
    • 如何解决swarm docker 端口不通问题
    • PHP常用函数之根据生日计算年龄功能示例
    • MySQL中key 、primary key 、unique key 与index区别详解
    • ThinkPHP3.2.3如何从php5升级到php7
    • CSS3背景图片固定滑动效果
    • curl获取结果乱码的解决方法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有