promise 实现红绿灯
- <!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>
- ul {
- position: absolute;
- width: 200px;
- height: 200px;
- top: 50%;
- left: 50%;
- transform: translate(-50%,-50%);
- }
- /*画3个圆代表红绿灯*/
- ul >li {
- width: 40px;
- height: 40px;
- border-radius:50%;
- opacity: 0.2;
- display: inline-block;
- }
- /*执行时改变透明度*/
- ul.red >#red,
- ul.green >#green,
- ul.yellow >#yellow{
- opacity: 1.0;
- }
- /*红绿灯的三个颜色*/
- #red {background: red;}
- #yellow {background: yellow;}
- #green {background: green;}
- </style>
- <body>
- <ul id="main" class="">
- <li id="green"></li>
- <li id="yellow"></li>
- <li id="red"></li>
- </ul>
- </body>
- <script>
- function timeOut(timer){
- return function(){
- return new Promise(function(resolve,reject){
- setTimeout(resolve,timer)
- })
- }
- }
- var green = timeOut(5000);
- var yellow = timeOut(2000);
- var red = timeOut(3000);
- var main = document.getElementById("main");
- (function restart(){
- 'use strict' //严格模式
- console.log("绿灯"+new Date().getSeconds()) //绿灯执行5秒
- main.className = 'green';
- green()
- .then(function(){
- console.log("黄灯"+new Date().getSeconds()) //黄灯执行2秒
- main.className = 'yellow';
- return yellow();
- })
- .then(function(){
- console.log("红灯"+new Date().getSeconds()) //红灯执行3秒
- main.className = 'red';
- return red();
- }).then(function(){
- restart()
- })
- })();
- </script>
- </html>
promise 实现红绿灯的更多相关文章
- 使用Promise实现红绿灯交替重复亮
红灯3秒亮一次,黄灯2秒亮一次,绿灯1秒亮一次:如何让三个灯不断交替重复亮灯?(用Promise实现) function red() { console.log('red'); } function ...
- 用promise和async/await分别实现红绿灯
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- JS进阶 | 解决JQ keyup事件延迟的问题
写在前面 在使用keyup事件时,存在一个问题,假如想要做出类似于表单验证的demo:表单输入账号 “xxx” 后 再去ajax异步去后台数据库匹配,但是keyup事件的原理是每次键盘事件弹起就会检 ...
- 面试 | 商汤科技面试经历之Promise红绿灯的实现
说在前面 说实话,刚开始在听到这个面试题的实话,我是诧异的,红绿灯?这不是单片机.FPGA.F28335.PLC的实验吗?! 而且还要用Promise去写,当时我确实没思路,只好硬着头皮去写,下来再r ...
- 红绿灯 promise和原始方式实现
Promise 方式 async+await function sleep(duration){ return new Promise(function(resolve){ setTimeout(re ...
- [js高手之路] es6系列教程 - promise常见用法详解(resolve,reject,catch,then,all,race)
关于promise我在之前的文章已经应用过好几次,如[js高手之路]Node.js+jade+express+mongodb+mongoose+promise实现todolist,本文就来讲解下pro ...
- 理解ES6——Promise
浏览器的控制台真是个好东西,啥都能干: 这就是Promise,能看出来啥? 1.是个构造函数,可以new实例. 2.自身有一些方法:all.race.reject.resolve... 3.原型上有c ...
- promise的理解
为什么会有promise,他的作用是什么? promise主要是为了解决js中多个异步回调难以维护和控制的问题. 什么是promise? 从图中,我们可以看出,Promise是一个函数,这个函数上有在 ...
- Javascript - Promise学习笔记
最近工作轻松了点,想起了以前总是看到的一个单词promise,于是耐心下来学习了一下. 一:Promise是什么?为什么会有这个东西? 首先说明,Promise是为了解决javascript异步编 ...
随机推荐
- three.js之创建一个几何体
<html> <head> <title>My first three.js app</title> <style> body { marg ...
- PAT Basic 1021 个位数统计 (15 分)
给定一个 k 位整数 1 (0, ,, dk−1>0),请编写程序统计每种不同的个位数字出现的次数.例如:给定 0,则有 2 个 0,3 个 1,和 1 个 3. 输入格式: 每个输入包含 ...
- Windowsx下Appium环境搭建步骤及问题
1,安装Java jdk配置环境变量 验证方式:cmd >java -version 2,下载Android sdk配置环境变量 验证方式:cmd >adb devices(下载的是zi ...
- 计算机基础之BIOS
BIOS BIOS是英文"Basic Input Output System"的缩略词,直译过来后中文名称就是"基本输入输出系统".在IBM PC兼容系统上,是 ...
- 爱搞事情的webpack
webpack 是一个现代 JavaScript 应用程序的静态模块打包器(module bundler). 当 webpack 处理应用程序时,它会递归地构建一个依赖关系图(dependency g ...
- ARDUINO UNO烧录BOOTLOADER
批量烧录为了速度加快,使用USBASP工具,配合PROGISP软件进行烧录. 因为脱离了ARDUINO IDE,所以需要研究AVR单片机的熔丝位设置问题. 刷ATMEGA32U4芯片,需要这样设置: ...
- Acwing-202-最幸运的数字(同余, 欧拉定理)
链接: https://www.acwing.com/problem/content/204/ 题意: 8是中国的幸运数字,如果一个数字的每一位都由8构成则该数字被称作是幸运数字. 现在给定一个正整数 ...
- java+大文件上传+下载
我们平时经常做的是上传文件,上传文件夹与上传文件类似,但也有一些不同之处,这次做了上传文件夹就记录下以备后用. 这次项目的需求: 支持大文件的上传和续传,要求续传支持所有浏览器,包括ie6,ie7,i ...
- position:fixed 失效问题
为了提升动画性能,在body上加上了transform:translate3d(0,0,0) 但是3d使得新建了一个层(具体原因请参考:高性能css动画),导致position:fixed不在当前的层 ...
- P1121 环状最大两段子段和(DP)
P1121 环状最大两段子段和 难度 提高+/省选- 题目描述 给出一段环状序列,即认为A[1]和A[N]是相邻的,选出其中连续不重叠且非空的两段使得这两段和最大. 输入输出格式 输入格式: 输入文件 ...