前端javascript练习题之promise
前端javascript练习题之promise
promise-ajax的封装
function ajax(url){//创建promise对象
var promise = new Promise(function(resolve,reject){
//创建ajax对象
if(window.XMLHttpRequest){ var xhr = new XMLHttpRequest(); }else{ var xhr = new ActiveXObject("Microsoft.XMLHTTP"); } xhr.open("get",url,true); xhr.send(); xhr.onreadystatechange = function(){ if(xhr.readyState == 4){ if(xhr.status == 200){ var data = xhr.responseText; resolve(data); }else{ reject(); } } }
})
return promise; //返回promise对象}
红绿灯
html结构代码
<li id="green"></li> <li id="yellow"></li> <li id="red"></li></ul>
css样式代码:
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;}
js实现代码:
function timeout(timer) {
return function() { return new Promise(function(resolve, reject) { setTimeout(resolve, timer) }) } } var green = timeout(1000); var yellow = timeout(1000); var red = timeout(1000); var traffic = document.getElementById("traffic"); (function restart() { 'use strict' //严格模式 traffic.className = 'green'; green().then(function() { traffic.className = 'yellow'; return yellow(); }) .then(function() { traffic.className = 'red'; return red(); }).then(function() { restart() }) })();

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
前端javascript练习题之闭包案例
前端javascript练习题之闭包案例,编写一个求和函数sum,使输入sum(2)(3)或输入sum(2,3),输出结果相同 可以传入多个参数 function sum(){ var num = arguments[0]; if(arguments.length==1){ return function(sec){ return num+sec; } }else{ var num = 0; for(var i = 0;i<arguments.length;i++){ num = num + arguments[i]; } return num; } } 递归----深拷贝function deepCopy(obj){ if(Array.isArray(obj)){ var newobj=[]; }else{ var newobj={}; } for(var i in obj){ if(typeof obj[i]=="object"){ newobj[i]=deepCopy(obj[i]); }else{ newobj[i]=obj[i]; } } return newobj; ...
- 下一篇
Python的小数据存储,用什么格式更有逼格?
小数据存储 我们在编写代码的时候,经常会涉及到数据存储的情况,如果是爬虫得到的大数据,我们会选择使用数据库,或者excel存储。但如果只是一些小数据,或者说关联性较强且存在存储后复用的数据,我们该如何存储呢? 使用open保存文本 最简单、粗暴+无脑的存储方式就是保存成一个文本文档了。使用open函数,将结果一行行的保存成文本,这里涉及的知识点只有简单的几条: 文件读写模式,r 、w、a、b、+ ,掌握这几种即可。 使用单独的open打开文件时,需要注意结尾时的调用close()函数关闭文档 推荐使用上下文管理器的with open操作 csv文件 之所以将csv与excel分开说,首先需要扫盲下,csv属于特定格式的文本文件(使用逗号分隔),而excel是二进制文件。 csv可以直接使用文本编辑器打开,excel不行… 其实csv文件,完全可以使用open函数进行保存,只要你将每行数据都使用,分隔开即可。另外,python自带csv库,可以很方便的操作与保存该数据 xml文件 xml文件的方式,已经逐渐被淘汰了,为什么这么说?因为它繁琐的树形结构,导致了在传输过程中,占用了更多的内存...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS7设置SWAP分区,小内存服务器的救世主
- Mario游戏-低调大师作品
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- 2048小游戏-低调大师作品