$http與ajax的同步請求
阿新 • • 發佈:2018-12-14
在web前端開發中,雖然一般都是用的非同步網路請求解決大多數功能需求,但是在一些特定需求的情況下,我們還是要使用到同步的網路請求來解決一些特殊的需求。那麼本篇介紹的是實現AngularJS中$http與jQuery中ajax如何實現同步網路請求。
(一)$http同步網路請求
其實這個實現很簡單,重要在於兩點:第一點要在成功的回撥方法裡面直接返回結果;第二點就是$http本身執行後就直接返回promise物件。滿足這兩點需求,就可以實現$http的同步實現了。
而最終網路請求獲取的結果集就是在返回的promise物件中。
模板程式碼實現:
let requestConfig = { url:"...", method:"post" }; let promise = $http(requestConfig).then(function (response) { return response; }); console.log("結果在promise物件中",promise);
(二)ajax同步網路請求
實現ajax的同步網路執行,也重要在於兩點:第一點就是在請求引數中配置async的值為false;第二點就是不要寫ajax的成功或失敗的回撥方法,直接返回ajax執行後獲取的結果集即可。滿足這兩點需求,就可以實現ajax的同步實現了。
模板程式碼實現:
let result = $.ajax({ url:"...", type:"get", async:false }); console.log("返回結果直接是result",result);