में एक साथ वादा और सेवा का उपयोग करें मेरा प्रश्न कोणीय Google समूह में this topic पर आधारित है।
मैं एक ऐसी सेवा प्रदान करना चाहता हूं जो बैकएंड से $ http के माध्यम से कुछ बुनियादी डेटा पुनर्प्राप्त करे, तो मुझे केवल एक बार उन डेटा को लाने की आवश्यकता है। जैसे,कोणीय
var load = function() {
return $http.get(...).then(function(data) {
return data.user;
});
};
module.factory("userProvider", function() {
var user;
var getUser = function() {
if(!user) {
load().then(function(data) {
user = data;
});
}
return user;
};
return {
getUser : getUser
}
});
module.controller("UserController", ["userProvider", function UserController("userProvider") {
var user = userProvider.getUser();
// do something with user
}]);
समस्या यह है कि वादा श्रृंखला userProvider में समाप्त होता है, लेकिन नियंत्रक में नहीं है, तो उपयोगकर्ता पहली बार मैं इस नियंत्रक के बाद से डेटा नहीं दिया नहीं किया गया है का उपयोग अपरिभाषित है।
मैं ऐसी स्टोरेज सेवा का उपयोग कैसे कर सकता हूं और डेटा को सही तरीके से वापस कर सकता हूं? धन्यवाद!
धन्यवाद जोश, यह काम करता है! – Edward
महान काम करता है। एकमात्र चीज जो गायब हो सकती है वह अतिरिक्त बाहरी कॉल को रोकने के लिए कुछ है जबकि पहली कॉल डेटा ला रही है। – keyser