zoukankan      html  css  js  c++  java
  • 用promise和async/await分别实现红绿灯

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>练习</title>
        
    </head>
    <style>
        .light{
            width:200px;
            height: 200px;
            border-radius:50%;
            background:red;
        }
        .light2{
            width:200px;
            height: 200px;
            border-radius:50%;
            background:red; 
        }
    </style>
    <body>
        <div class="light"></div>
        <div class="light2"></div>
    <script>
        //promise实现  红绿灯
        var light=document.getElementsByClassName("light")[0];
        var r=function(){
            return new Promise(function(resolve,reject){
                light.style.background="red";
                setTimeout(resolve,3000);
            })
        };
        var y=function(){
            return new Promise(function(resolve,reject){
                light.style.background="yellow"; 
                setTimeout(resolve,2000);
            })
        }
        var g=function(){
            return new Promise(function(resolve,reject){
                light.style.background="green"; 
                setTimeout(resolve,4000);
            })
        }
        var xun=function(){
                r().then(function(){
                    return y();
                }).then(function(){
                    return g();
                }).then(function(){
                    return xun();
                });
        }
        xun();
    
        //async/await实现红绿灯
        const lignt2=document.getElementsByClassName("light2")[0];
        function changeLightColor(color,duration){
            return new Promise(function(resolve,reject){
                lignt2.style.background=color;
                setTimeout(resolve,duration);
            })
        }
    
        async function xun2 (){
            await changeLightColor("red",3000);
            await changeLightColor("yellow",2000);
            await changeLightColor("green",4000);
            xun2();
        }
        xun2();//执行
    </script>
    </body>
    </html>
  • 相关阅读:
    JQuery之在线引用
    SpringBoot之durid连接池配置
    VueJs之事件处理器
    VueJs之样式绑定
    VueJs之判断与循环监听
    PTA 7-8 暴力小学(二年级篇)-求出4个数字 (10分)
    PTA 7-7 交替字符倒三角形 (10分)
    PTA 7-5 阶乘和 (10分)
    PTA 7-4 哥德巴赫猜想 (10分)
    PTA 7-3 可逆素数 (15分)
  • 原文地址:https://www.cnblogs.com/fqh123/p/10421696.html
Copyright © 2011-2022 走看看