写在前面
晚上好呀。今天我们来用Promise封装一个Ajax吧。
Promise将异步操作以同步操作的流程表达出来,避免了层层嵌套的回调函数。
代码如下
function ajaxPromise(url,method,data) {
var pro = new Promise(function(resolve, reject) {
var ajax = new XMLHttpRequest();
var method=method||"GET"
var data=data ||null
ajax.open(method, url);
ajax.send(data);
ajax.onreadystatechange = function() {
if (ajax.readyState == 4 && ajax.status == 200) {
resolve(ajax.responseText);
}
}
setTimeout(function() {
reject("请求服务器失败");
}, 1000)
})
return pro;
}
var pro = ajaxPromise("./txt/user.json");
pro.then(function(msg) {
console.log(JSON.parse(msg));
}, function(msg) {
console.log(msg);
})
写在最后
以上就是今天的全部内容啦。
不积跬步无以至千里,不积小流无以成江海。