前端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条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Linux系统CentOS6、CentOS7手动修改IP地址
- CentOS8编译安装MySQL8.0.19
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS7,CentOS8安装Elasticsearch6.8.6
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- CentOS关闭SELinux安全模块
- MySQL8.0.19开启GTID主从同步CentOS8
- 设置Eclipse缩进为4个空格,增强代码规范
- SpringBoot2整合Redis,开启缓存,提高访问速度
- Docker快速安装Oracle11G,搭建oracle11g学习环境