मैं उलझन में हूं कि मुझे इस सेवा कॉल को आवश्यकतानुसार क्यों नहीं किया जा सकता है। console.log
के भीतर definitionsService.get
वादा संकल्प है जो मैं अपेक्षा करता हूं (जिस वस्तु को मैं वापस करने का लक्ष्य रख रहा हूं)। हालांकि console.log
defs
वापस आने से ठीक पहले undefined
है, जिसका अर्थ है कि मेरा लौटा मूल्य अपरिभाषित है। मैं क्या खो रहा हूँ? नीचे दिए गए जवाब के अनुसारकोणीय सेवा कॉल के भीतर स्कॉइंग
function getDefinitions() {
var defs = $q.defer();
definitionsService.get().$promise.then(function(data) {
defs.resovle(data);
});
return defs.promise;
};
:
function getDefinitions() {
var defs;
definitionsService.get().$promise.then(function(data) {
console.log(data);
defs = data;
console.log(defs);
});
console.log(defs);
return defs;
};
मैं करने के लिए ऊपर बदल दिया है।
function detail(account) {
getDefinitions().then(function(definitions) {
var key = angular.isDefined(definitions.ABC[account.code]) ? account.code : '-';
return definitions.ABC[key].detail;
});
}
तब मेरे नियंत्रक में मैं निम्न कार्य करने की कोशिश कर रहा हूँ:
var getAccounts = function() {
playersService.getAccounts({
playerId: playerId
}).$promise.then(function(accounts) {
for (var i = 0; i < accounts.length; i++) {
accounts[i].detail = utilitiesService.detail(accounts[i]);
}
vm.accounts = accounts;
});
};
var init = function() {
getAccounts();
};
init();
मेरे समस्या है
मैं भी जिस तरह से मैं इस तरह एक ही जवाब प्रति इस विधि कॉल बदल accounts[i].detail
लगातार undefined
है।
कि काफी मददगार था। मेरी एकमात्र शेष समस्या यह है कि जब मैं उस विधि को कॉल करता हूं जो मेरे नियंत्रक से 'getDefinitions' कहता है, तो यह भी एक वादा वापस कर रहा है। – MattDionis
ठीक है, असीमित प्रकृति पूरे कॉल स्टैक में उलझ जाएगी। क्या आप स्पष्टता के लिए अतिरिक्त कोड प्रदान कर सकते हैं? –
मेरे मूल प्रश्न में जोड़ा गया विवरण। – MattDionis