1. 程式人生 > >$http與ajax的同步請求

$http與ajax的同步請求

在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);