假設有多筆request要發送時,但又不希望一次全發送出去,希望將request的數量,在同個時段只出現5個request,這時候就需要一個manager之類的object去處理,在這裡使用ngHttpPool為例。
安裝ngHttpPool
使用bower安裝,或者至github下載:
1 | bower install ngHttpPool |
使用ngHttpPool
載入一個ngHttpPool module:
1 | <script type="text/javascript" src="/bower_components/ngHttpPool/public/src/ngHttpPool.js"></script> |
定義module相依性:
1 | angular.module( "app", [ |
建立一個pool和定義同時存在的最大request數量:
1 |
|
傳入config,發送多個request:
1 |
|
如果要等request都從server返回,可使用以下的方式:
建立一個defer,會將之後發送request都當作監聽對象:
1 |
|
將config push到pool,執行request的發送:
1 |
|
結束監聽,當所有結果回傳時,將會執行promise.then:
1 |
|
Demo
可參考ngHttpPool github。