function ajax(url){
return new Promise(function (resolve, reject) {
var xhr=new XMLHttpRequest();
xhr.open('get',url,true);
xhr.send();
xhr.onreadystatechange=function(){
if(xhr.readyState===4){
if(xhr.status===200){
resolve(JSON.parse(xhr.responseText));
}else{
reject('error');
}
}
}
});
}
(async function () {
var ret = await ajax('/users').then(function (data) {
return data;
}).catch(function (error) {
return error;
})
console.log(ret);
})();
- 只要执行了resolve(),那么reject()就不会执行了。其代码的先后顺序,决定了其执行的先后顺序。
- reject 方法的参数通常是错误。