मैं AngularJS के लिए नया हूं और जैसा कि मैं अपना कोड लिख रहा हूं, विशेष रूप से मेरी सेवाएं .factory() काफी बड़ी हो रही हैं। उदाहरण के तौर पर, एक कारखाने में मेरे पास 4 बहुत बड़े वादे हैं..और अंत में मैं उन सभी को एक $q.all([promise1(),promise2(),promise3(),promise4()]) में बंडल करता हूं। (फ़ंक्शन (प्रतिक्रिया)। यह सब सफाई से काम करता है ... हालाँकि, जैसे-जैसे कारखाना बढ़ता है और कोड के प्रत्येक अनुभाग को प्रबंधित करना कठिन और कठिन होता जाता है।

मैं एक ऐसी विधि देख रहा हूं जो मुझे इस विशाल .factory() को साफ करने की अनुमति देगी और मुझे बाहरी फ़ाइल से कारखाने में कोड लोड करने या .factory को तोड़ने की अनुमति देगी लेकिन फिर भी $q.all(. ..) उन सभी को एक साथ संसाधित करने के लिए ... या किसी अन्य विधि के बारे में मैं सोच नहीं रहा/जागरूक नहीं हूं।

यह कोड को प्रबंधित करने में मेरी अपनी विवेक के लिए है ... साथ ही साथ विशिष्ट वादों को सक्रिय या निष्क्रिय करने के लिए केवल एक पंक्ति पर टिप्पणी करके जो बदले में कोड के उन सभी बाइट्स को लोड करने की आवश्यकता नहीं है जिनका उपयोग नहीं किया जा रहा है।

1
rolinger 13 मई 2016, 01:30
1
क्या आप कोड का छोटा सा टुकड़ा दिखा सकते हैं
 – 
Zohaib Ijaz
13 मई 2016, 01:31

1 उत्तर

सबसे बढ़िया उत्तर

फैक्ट्रियों को कारखानों में इंजेक्ट किया जा सकता है। एक बड़े कारखाने को छोटे कारखानों में पुन: स्थापित किया जा सकता है।

app.factory("promiseService1", function() {
    return function promise1 () {
        var promise1;
        //code here
        return promise1;
    };
});     

app.factory("promiseService2", function() {
    return function promise2 () {
        var promise2;
        //code here
        return promise2;
    };
});

फिर उन कारखानों को शीर्ष कारखाने में इंजेक्ट करें।

app.factory("megaService", function($q, promiseService1, promiseService2) {
    return function megaPromise() {
        var promise1 = promiseService1();
        var promise2 = promiseService2();
        return $q.all([promise1, promise2]);
   }
});

बड़े कारखाने के लिए कोड को और अधिक प्रबंधनीय बनाने के अलावा, अलग-अलग कारखानों को अपने दम पर इकाई परीक्षण किया जा सकता है।

1
georgeawg 13 मई 2016, 17:29
धन्यवाद धन्यवाद धन्यवाद। पूरी तरह से समझ में आता है, पता नहीं क्यों मैंने खुद इस बारे में नहीं सोचा।
 – 
rolinger
14 मई 2016, 23:56
मुझे लगता है कि मुझे ऐप परिभाषा में 'उप' कारखानों को परिभाषित करने की आवश्यकता है। यानी: angular.module('starter', ['ionic', 'starter.controllers', 'starter.services',starter.subfactory1','starter.subfactory2','starter.subfactory3']) ??? और क्या मुझे परिभाषित करने की आवश्यकता है: angular.module('starter.subfactory1', []); प्रत्येक सबफैक्ट्रीएक्स फ़ाइल के शीर्ष पर?
 – 
rolinger
15 मई 2016, 20:29
मेरे उत्तर से पता चलता है कि सभी कारखाने एक मॉड्यूल का हिस्सा हो सकते हैं। मॉड्यूल को एक मॉड्यूल पदानुक्रम में फिर से विभाजित किया जा सकता है। पुन: फैक्टरिंग मॉड्यूल एक और दिन के लिए एक और सवाल है।
 – 
georgeawg
15 मई 2016, 21:29
मुझे नहीं लगता कि मैंने अपना दूसरा प्रश्न ठीक से लिखा है, लेकिन मैं इसका उत्तर निकालने में कामयाब रहा। उपरोक्त अच्छा और साफ काम करता है। मदद करने के लिए बहुत बहुत धन्यवाद।
 – 
rolinger
15 मई 2016, 21:41