के साथ वादा करता हूं कि मैं एंगुलरजेएस वादा/फिर एक पुनरावर्ती फ़ंक्शन के साथ उपयोग करने का प्रयास कर रहा हूं। लेकिन तत्कालीन कार्य को नहीं कहा जाता है (त्रुटि में से कोई भी नहीं, सफलता-, अधिसूचना-कॉलबैक बुलाया जाता है)।एंगुलरजेएस, रिकर्सिव फ़ंक्शन
पुनरावर्ती क्रिया
loadSection2 = function() {
var apiURL = "http://..."
var deferred = $q.defer();
$http({
method: "GET",
url: apiURL
}).success(function(result, status, headers, config) {
console.log(result);
loadCount++;
if(loadCount < 10) {
newSectionArray.push(result);
loadSection2();
} else {
loadCount = 0;
deferred.resolve();
return deferred.promise;
}
}).error(function() {
return deferred.reject();
});
deferred.notify();
return deferred.promise;
};
तो
loadSection2().then(function() {
console.log("NEW SECTIONS LOADED, start adding to document");
addContent();
}, function() {
console.log("ERROR CALLBACK");
}, function() {
console.log("NOTIFY CALLBACK");
}).then(function() {
loadScrollActive = false;
});
मुझे लगता है, तो कम से कम पहले सूचित-कॉलबैक प्राप्त करने के लिए है:
यहाँ मेरी कोड है। लेकिन कोई कॉलबैक नहीं है। फिर रिकर्सिव फ़ंक्शन के साथ काम नहीं कर रहा है?
क्या आप हमें एक jsfiddle दे सकते हैं? – Manishearth
एक चीज जो मैं देखता हूं वह यह है कि आप कॉलबैक फ़ंक्शन से कुछ वापस नहीं कर सकते हैं। तो .success में deferred.promise वापस करें और आतंक वास्तव में कुछ भी नहीं करता है। हालांकि समस्या का कारण नहीं है। – Narretz
'loadCount' कहां परिभाषित किया गया है? और, 'सूचित करें' आपके जैसा काम नहीं करता है। मेरे पास कोणीय रेपो में एक खुली समस्या है -> https://github.com/angular/angular.js/issues/5277 – Rifat