2014-09-28 23 views
1

我想推遲到以下whenGET響應:

​​

但是它使用$超時同步做到這一點似乎是不可能的,所以我不知道如何處理呢?

+0

爲什麼要延遲響應SE?你最終的目標是什麼? – dnozay 2014-09-28 17:30:12

+0

嗯,我想模擬網絡延遲,而不實際擊中網絡。我有一個進度條,我需要驗證作品,如果我的一系列請求是瞬間完成的,我無法檢查。 – Keir 2014-09-28 18:19:02

+0

如果你需要測試進度條,爲什麼你甚至需要在圖片中有請求?你能不能隔離進度條,並確保它能正確顯示不同的狀態?例如值更改 - >進度條更改。 – dnozay 2014-09-28 21:59:48

回答

0

如果您只想延遲特定響應,則可能會延遲將響應分配給範圍屬性。

如果換你的電話到您的自定義服務方法,可能比你包裹響應到承諾並在需要時解決它:

JS:

angular.module('app').service('myService', function($q, $timeout){ 

this.getData = function() { 
    var delay = 300, 
     origPromise = $http.get('someUrl'), 
     deferred = $q.defer(); 
    $timeout(function() { 
     deferred.resolve(origPromise); 
    }, delay); 

    return defered.promise; 
}; 

}); 

[編輯]:

要設置所有請求的延遲,您可以將此解決方案應用於響應攔截器

+0

這裏http://endlessindirection.wordpress.com/2013/05/18/angularjs-delay-response-from-httpbackend/是一個解釋你如何配置所有請求的延遲。 – Alexei 2014-09-28 16:45:00

相關問題