कैसे काम करता है कोणीय $ q.when?


95

क्या कोई मुझे समझा सकता है कि $q.whenAngularJS में कैसे काम किया जाता है? मैं विश्लेषण करने की कोशिश कर रहा हूं कि $httpयह कैसे काम करता है और यह पाया गया:

var promise = $q.when(config);

और यहाँ क्रोम कंसोल से कॉन्फिग ऑब्जेक्ट है:

Object {transformRequest: Array[1], transformResponse: Array[1], cache: Object, method: "GET", url: "/schedule/month_index.html"…}
cache: Object
headers: Object
method: "GET"
transformRequest: Array[1]
transformResponse: Array[1]
url: "/schedule/month_index.html"
__proto__: Object

आगे क्या होगा? यह ऑब्जेक्ट कैसे हल या अस्वीकृत हो जाता है?


$ q औजार, जावास्क्रिप्ट में कॉलबैक के आस-पास अपने बस साधारण रैपर के प्रतिमानों का वादा करते हैं। जब कॉलबैक में बड़े पैमाने पर फायर किए जाते हैं तो वादे हल हो जाते हैं
अजय बेनीवाल

1
@ अजयबेनीवाल, लेकिन इस मामले में ऑब्जेक्ट पास हो गया, कॉलबैक नहीं। जब ऑब्जेक्ट पास हुआ, तो कॉलबैक नहीं, मामले में इसे कैसे हल / अस्वीकार किया गया?
सेट

जवाबों:


113

कॉलिंग $q.whenएक वादा या किसी अन्य प्रकार का लेती है, अगर यह वादा नहीं है तो यह इसे एक वादा और कॉल समाधान में लपेट देगा। यदि आप इसके लिए एक मान पास करते हैं तो यह कभी भी अस्वीकार नहीं होने वाला है।

डॉक्स से:

एक वस्तु को लपेटता है जो एक मूल्य (या 3 पार्टी) हो सकता है फिर एक $ q वादे में सक्षम वादा करता है। यह तब उपयोगी होता है जब आप किसी ऐसी वस्तु के साथ काम कर रहे होते हैं जो एक वादा हो सकती है या नहीं भी हो सकती है, या यदि वादा एक ऐसे स्रोत से आता है जिस पर भरोसा नहीं किया जा सकता है।


If you pass a value to it- लेकिन क्या होगा अगर मैं ऑब्जेक्ट पास कर रहा हूं?
सेट करें

11
मूल्य, वस्तु, सरणी यह ​​सब समान है।
डेरेक एकिन्स

3
क्या होगा अगर मैं एक वादा पारित करता हूं? क्या इसका मतलब यह है कि इसके कॉलबैक को वादे के अनुसार परिणाम द्वारा पारित किया जाएगा?
ओनूर टॉपल

3
ओनुर, जब आप कहते हैं कि एक फ़ंक्शन पास है, तो क्या आपका मतलब एक फ़ंक्शन ऑब्जेक्ट के रूप में है: $q.when(myfunc)या फ़ंक्शन को अपने पास में इनवॉइस करके $q.when(myfunc())? मुझे ठीक से पता नहीं है कि पूर्व क्या करेगा ... बाद वाला myfunc()पहले आह्वान करेगा , और लौटाया गया वादा पास करेगा .when()
jrista
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.