实现一个简易的红绿灯程序

  • 描述:

    使用js编写一个程序,实现红、黄、蓝三种状态循环打印。

  • 示例:

  • 实现:

    1. 利用setInterval()定时显示状态
     let n = 0
            function officeLight(){
                let status = ''
                if(n % 3 === 1) {
                    status = 'red'
                } else if (n % 3 === 2) {
                    status = 'green'
                } else {
                    status = 'yellow'
                }
                n++
                console.log(status)
            }
            setInterval(() => {
                officeLight()
            }, 3000)
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    1. 利用Promise()异步回调显示
    function sleep(status,duration){
        console.log(status)
        return new Promise((resolve,reject)=>{
            setTimeout(()=>{
                resolve()
            }, duration)
        })
    }
    async function officeLight(red=15000,green=5000,yellow=3000) {
        while(1) {
            await sleep('red',red)
            await sleep('green',green)
            await sleep('yellow',yellow)
        }
    }
    officeLight(3000,3000,3000)
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
上次更新: 9/25/2019, 9:54:29 AM