class AjAX { constructor() { this.xhr = new XMLHttpRequest(); } /** * * @param {*} params * url: 字符串 请求地址, * data: 对象 */ get(params) { return new Promise((success, error) => { var record = "" for (const key in params.data) { record += `&${key}=${params.data[key]}` } record = record.replace("&", "?") console.log(`${config.checkStage()}${params.url}${record}`); this.xhr.open("GET", `${config.checkStage()}${params.url}${record}`) this.xhr.send(); this.readystatechange(success, error) }) } post(params) { console.log(params); return new Promise((success, error) => { this.xhr.open("POST", `${config.checkStage()}${params.url}`) this.xhr.setRequestHeader("Content-type","application/json"); this.xhr.send(JSON.stringify(params.data)); this.readystatechange(success, error) }) } readystatechange(success, error) { this.xhr.onreadystatechange = () => { if (this.xhr.readyState == 4) { if (this.xhr.status == 200) { var res = JSON.parse(this.xhr.responseText); // 业务逻辑状态码的判断 switch (res.status) { case 200: success(res.result || res.data) break; case 404: alert(res.message) throw new Error(res.message) break; default: break; } } else { error(this.xhr) } } } } } // a.get({ // url: '/index/class', // data: { // type: 1, // page: 1 // }, // success: (res) => { // console.log("拿到的数据为:", res); // }, // error: (err) => { // console.log("请求出错了:", err); // } // }); // function test() { // return new Promise(function (success, error) { // var a = 1 // setTimeout(() => { // a += 1; // success(a) // }, 3000) // }) // } // var dd = async () => { // // test() // // .then((res) => { // // console.log(res); // // }) // // .catch() // var num = await test(); // console.log(num); // } // dd() // 回调地狱 // 异步返回值 回调 promise // 系统级别判断 // await indexService.class({ type: 1, page: 1 })