1
我有一個AngularJS函數可以從數據庫中獲取一些數據。根據數據填充到數據庫的方式,我不會獲得我正在尋找的一些數據(我會在原始調用的一兩秒鐘內收回數據)。我想要做的是檢查從數據庫返回的結果,如果某種類型尚未存在,則「推送另一個承諾」以再次從數據庫中獲取數據。這是我目前的功能:基於結果重複角度承諾?
function getResponses(ids,user) {
var deferred = $q.defer();
var promises = [];
var idsString = "";
angular.forEach(ids, function (id) {
idsString += "," + id;
});
idsString = idsString.substring(1);
//Get Response calls retrieves the data from the database
promises.push(getResponse(idsString, user));
$q.all(promises).then(function(results) {
deferred.resolve(results);
});
return deferred.promise;
}
我到目前爲止最大的問題是我會在哪裏放置「檢查結果」部分?我想它會在$ q.all塊中,但是我需要首先從數據庫中解析結果,還是隻檢查數據庫中的結果,如果它們包含所有必需的類型,則解決它然後?如果它沒有解決,只要繼續推動getResponse承諾在一個$間隔,直到期望的結果回來?
我甚至要求甚至可能嗎?
感謝
所以,基本上你要查詢的數據庫中特定類型的值?如果是這樣,創建一個接受類型參數並解析該特定值的函數將更爲合理。通過這種方式,您可以創建一系列承諾,等待所有承諾,並在他們全部解決後獲得您的價值觀。 –