ajax&promise

来源:互联网 发布:浪潮软件股票走势 编辑:程序博客网 时间:2024/05/16 08:49
  1. // 简单的ajax原生实现  
  2. var url = 'https://hq.tigerbrokers.com/fundamental/finance_calendar/getType/2017-02-26/2017-06-10';  
  3. var result;  
  4.   
  5. var XHR = new XMLHttpRequest();  
  6. XHR.open('GET', url, true);  
  7. XHR.send();  
  8.   
  9. XHR.onreadystatechange = function() {  
  10.     if (XHR.readyState == 4 && XHR.status == 200) {  
  11.         result = XHR.response;  
  12.         console.log(result);  
  13.     }  
  14. }  
  15.   



promise使用
  1.   
  2. var url = 'https://hq.tigerbrokers.com/fundamental/finance_calendar/getType/2017-02-26/2017-06-10';  
  3.   
  4. // 封装一个get请求的方法  
  5. function getJSON(url) {  
  6.     return new Promise(function(resolve, reject) {  
  7.         var XHR = new XMLHttpRequest();  
  8.         XHR.open('GET', url, true);  
  9.         XHR.send();  
  10.   
  11.         XHR.onreadystatechange = function() {  
  12.             if (XHR.readyState == 4) {  
  13.                 if (XHR.status == 200) {  
  14.                     try {  
  15.                         var response = JSON.parse(XHR.responseText);  
  16.                         resolve(response);  
  17.                     } catch (e) {  
  18.                         reject(e);  
  19.                     }  
  20.                 } else {  
  21.                     reject(new Error(XHR.statusText));  
  22.                 }  
  23.             }  
  24.         }  
  25.     })  
  26. }  
  27.   
  28. getJSON(url).then(res => console.log(res));  



ajax用来获取后台的数据,promise是ES6引入的,用来充当异步操作与回调函数之间的中介。