Promise處理有依賴的連續請求

2021-08-13 22:00:34 字數 1068 閱讀 2061

在沒有接觸到promise之前,如果有這樣的需求,先去前端需要非同步去請求第乙個介面,然後接收到返回的一些資料,然後利用得到的資料,去請求第二個介面,然後接收傳回來的資料,然後去請求第三個介面,這個時候我自己寫出來的**一定是ajax巢狀的一堆,寫出來的**可想而知,真的是太醜。

我現在不敢說我對promise有多懂,因為我離靈活應用它,還有距離,最近在看書,偶然看到了promise這個東西,所以忍不住想要去嘗試

$.ajax().then(function

(re) ,

}).then(function

(re) ,

}).then(function

(re) )

})})

當然,也許你寫的會比我的好看

function

request

(url, data)

}) })}

request("/union/perfomace/getpeformancename", {})

.then(function

(response1) );

}).then(function

(response2) );

});

是不是感覺好多了,反正我是覺得看著舒服多了,下面我把上面的**分析下吧

首先,request這個函式的作用就是返回乙個promise物件,它裡面的resolve第一次的時候是第乙個then裡面的函式,第二次的時候是第二個then裡面的函式,需要給這個該函式傳入url和data物件,以便傳送正確請求

當第一次呼叫request函式的時候,返回的是乙個promise物件,其實在then裡面的函式如果不通過return返回乙個promise的時候,它其實也是返回了乙個新的promise的,當這個return返回的非promise的時候,返回的就是乙個promisevalue等於返回值的promise,在返回值為promise的時候,當然直接返回這個promise就好了

希望對你有用,加油 ^_^

promise處理多個相互依賴的非同步請求

在專案中,經常會遇到多個相互依賴的非同步請求。如有a,b,c三個ajax請求,b需要依賴a返回的資料,c又需要a和b請求返回的資料。如果採用請求巢狀請求的方式自然是不可取的。導致 難以維護,如何請求很多。會出現很多問題。promise就是解決多個非同步請求的問題。promise是es6提供的乙個物件...

有依賴的揹包

關鍵 當遞迴處理u結點的子樹返回時,進行分組揹包的決策,各個子樹中的結點可能非常多,可能有100多個結點,因此,如果以方案來劃分最多有2 100種類別,所以要改用體積來劃分 從j表示當前除去v u 的體積,j從 m v u 0 的體積中列舉 類別 k選取體積是0,是1.是j 選乙個 轉化為分組揹包問...

Promise的鏈式呼叫和axios處理高併發

最近在專案中又遇到了乙個介面的請求需要依賴另乙個介面的請求結果和處理高併發的場景了,所以即興在這裡簡單總結和分享下,歡迎指正和補充。一 promise 簡要回顧 promise 是乙個建構函式,作為 es6 中最重要的特性之一,它有 all resolve reject race 眼熟的方法,原型上...