promise的含义(本身不是异步,是封装异步操作的容器,统一异步的标准)
promise对象的特点:对象的状态不受外界影响;一旦状态改变,就不会再变,任何时候都可以得到这个结果。
function aaa() { const promise = new Promise(function (resolve, reject) { const xmlhttp = new XMLHttpRequest(); xmlhttp.open("post", "url"); xmlhttp.setRequestHeader("content-type", "application/x-www-form-urlencoded"); xmlhttp.onreadystatechange = function () { if (this.readyState != 4) { return; } if (this.status == 200) { resolve(this.response); } else { reject(new Error("数据请求失败")) } } xmlhttp.send(""); }) return promise; } //then处理数据 let bbb = aaa(); bbb.then(function (value) { var data = JSON.parse(value); for (let i of Object.values(data)) { var name = i.name_coach; document.getElementById("ul").innerHTML += "<li>" + name + "</li>"; } }, function (error) { alert(error); })