我正在迭代地調用多個URL併爲每個URL請求添加返回的promise到數組中。迭代之後,我使用$q.all()
來獲取結果並將所有請求中的數據添加到單個數組中。
我的任務是將收集並存儲在一個數組中,直到一個URL返回無數據。但是,根據$q.all
的實現,我讀到如果一個承諾給出404錯誤,那麼整批請求將被拒絕。 如何克服這個或者任何其他方式來實現我的任務?
var calculateMutationsInDepth = function(){
\t \t \t var depthRange=[0,1,2,3];
\t \t \t var promises[]; // Promises array
//Calling GET request for each URL
\t \t \t depthRange.foreach(function(depth){
var resourceUrl = urlService.buildSonarUrlsWithDept(depth);
\t \t \t promises.push($http.get(resourceUrl));
\t \t });
\t \t \t
//Resolving the promises array
\t \t \t $q.all(promises).then(function(results){
\t \t \t \t var metricData=[]; //Array for appending the data from all the requests
\t \t \t \t results.forEach(function(data){
\t \t \t \t \t metricData.push(data);
\t \t \t \t })
\t \t \t \t analyzeMutationData(metricData); //calling other function with collected data
\t \t \t \t });
\t \t };
錯誤處理程序在您的個人要求?你可以發佈你現有的代碼嗎? – tymeJV
@tymeJV:請找到代碼。 – Dravidian