不廢話,粘代碼
function ajax(method, url, data) {let request = new XMLHttpRequest();return new Promise(function (resolve, reject) {request.onreadystatechange = function () {if (request.readyState === 4) {if (request.status === 200) {resolve(request.responseText);} else {reject(request.status);}}};request.open(method, url);request.send(data);});}let p = ajax('GET', 'config.json');p.then(function (text) { // 如果AJAX成功,獲得響應內容 console.log(text);}).catch(function (status) { // 如果AJAX失敗,獲得響應代碼 console.log(status);});
以上是模擬ajax實現
let promise=new Promise((resolve, reject) => {console.log("1")reject("我錯了");resolve("123");});promise.then(function(data){console.log("3")console.log(data)},function(err){console.log("4")console.log(err)})console.log("2")
以上是用來測試promise的執行順序