1. 程式人生 > 實用技巧 >使用Promise來封裝ajax請求

使用Promise來封裝ajax請求

需要引入的js檔案:此處命名為ajax.js

function request(url) {
    return new Promise((resolve, reject) => {
        let xhr = new XMLHttpRequest();
        xhr.open('get', url);
        xhr.send();
        xhr.onload = function() {
            if (this.status == 200) resolve(JSON.parse(this.responseText));
            
else reject('請求失敗'); }; xhr.onerror = function() { reject(this); } }) }

獲取資料的頁面:

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 
 4 <head>
 5     <meta charset="UTF-8">
 6     <meta name="viewport" content="width=device-width, initial-scale=1.0"
> 7 <title>Document</title> 8 <script src="./ajax.js"></script> 9 </head> 10 11 <body> 12 13 </body> 14 <script> 15 let url = 'https://result.eolinker.com/9ADUI9L779d8c4e34cc40db1d6a5d9bd9284d85d7dd8b14?uri=getTest'; 16 request(url) 17 .then(result
=> { 18 console.log(result); 19 //可以對獲取的資料進行處理,然後再發送ajax請求 --根據邏輯來進行層次處理 --利用return來實現 20 return request(url); 21 }, null) 22 .then(result => { 23 console.log(result); 24 }) 25 </script> 26 27 </html>

//執行結果