您现在的位置是:首页 > 文章详情

前端javascript练习题之promise

日期:2019-11-27点击:415

前端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() }) })(); 
原文链接:https://yq.aliyun.com/articles/729659
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章