هل من مجيب ؟ سؤال عن مكتبة Q وعن Promises في AngularJs

السلام عليكم

بحثت وقرأت عدة صفحات عن شرح كل من الـ Promises والـ $q Object عند استعمال factory أو Services في Angular ولكن هناك الكثييير من المصطلحات التي لم أستطع فهمها .. ولذلك لم أستطع فهم المعنى العام ومتى نستعمل هذه المكتبة وهذا الكائن $q .. هل أجد أحداً هنا يستطيع شرحها لي بطريقة مبسطة ؟؟

أريد استخدام factory في Angular بهذا الشكل:

    .factory('MyService', function($q) {
     return {
                findAll: function() {
                    var deferred = $q.defer();
                    deferred.resolve(students);
                    return deferred.promise; 
                    }
            }
        });

ماذا يمثل $q هنا ؟؟

وماذا نعني بـ $q.defer() ؟؟

وماذا أعاد لنا التابع findAll ؟؟ من الواضح أنه سيعيد لي جميع الطلاب الذين قمت بتخزينهم في هذا الـ Factory ... فهمت ذلك ولكنني إلى الآن لم أستطع فهم هذه المتحولات وعن ماذا تعبر وأين نستخدمها ؟ ولماذا اضطررنا لاستخدامها ؟؟ أما كان بإمكاني أن أجلب الطلاب students مباشرةً ودون اللجوء لهذه المكتبة والكائن $q ؟؟

شكراً سلفاً لمن سيجيبني :)


التعليق السابق

شكراً على إجابتك أخي الكريم

الحمد لله بعد بحث طويل وجدت هذا الشرح الجيد جداً والذي أوضح لي العديد من الأمور المبهمة :)