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

Javascript怎么实现红绿灯

作者:站长图库 字体:[增加 减小] 来源:互联网 时间:2022-04-29

站长图库向大家介绍了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怎么实现红绿灯

相关文章

  • 2022-04-2911个SEO细节提升网站权威性
  • 2022-04-29如何利用PHP来输出一个杨辉三角
  • 2022-04-29WordPress引入Dplayer并使用简码
  • 2022-04-29深入浅析Bootstrap中的自动定位浮标
  • 2022-04-29PHP如何删除Array数组指定key
  • 2022-04-29手把手教你在html中引入另一个html文件的方法(详解)
  • 2022-04-29WordPress使用OSS Upload后媒体库无法加载一直转圈解决方法
  • 2022-04-29Photoshop给外景草地女孩添加柔美逆光效果
  • 2022-04-29新站如何得到搜索引擎的好感?
  • 2022-04-29利用CSS如何实现全兼容的毛玻璃效果?

文章分类

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

最近更新的内容

    • 安装apache后如何添加代理模块
    • 这几个WordPress插件存在高危漏洞!
    • Photoshop绘制十二生肖按钮图标教程
    • dedecms页面获取会员状态的代码
    • Illustrator制作电视台标志
    • PhotoShop制作炫光抽象层次视觉效果文字教程
    • 12点网站优化实战经验分享
    • 浅析利用nodejs怎么给图片添加半透明水印(方法详解)
    • Yii框架的url怎么隐藏.php后缀
    • 插件highcharts在thinkphp中的使用

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

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