यह कोड होने
var Q = need ('q'); Var first = Q.fcall (function () {console.log ('यह वास्तविक रिज़ॉल्यूशन से पहले आउटपुट होगा?'); वापसी "यह परिणाम है।";}); SetTimeout (function () {console.log ('को हल करने के लिए।'); First.then (function (r) {console.log (r);});}, 3000);
इसका परिणाम क्यों है
यह वास्तविक रिजोल्यूशन से पहले आउटपुट होगा? हल करने वाला यह परिणाम है
के बजाय
समाधान करने वाला यह वास्तविक रिजोल्यूशन से पहले आउटपुट होगा? यह परिणाम है
और कैसे मैं फ़ंक्शन को केवल तब
को बुलाया जाता है?
आप गलतफहमी कर रहे हैं कि कैसे (ठेठ जावास्क्रिप्ट) काम का वादा करता है वे जब तक आप पर कॉल नहीं करते तब तक इंतजार नहीं करते <। वे अपना काम करते हैं, और जब यह किया जाता है, तो वे किसी ऐसे कार्य को कॉल करते हैं जिन्हें
.then
में पारित किया गया था।
तो आपके प्रश्न के लिए "मैं फ़ंक्शन को केवल तब कहा जाने के बाद कहूँगा जिसे कहा जाता है?", आप कम से कम जिस तरह से आप करने की कोशिश कर रहे हैं, ऐसा नहीं है कि वादे कैसे काम करते हैं
लेकिन आप निश्चित रूप से ऐसा कर सकते हैं:
var क्यू = अपेक्षित ('q'); Var getFirst = function () {return Q.fcall (function () {console.log ('यह वास्तविक रिज़ॉल्यूशन से पहले आउटपुट होगा?'); वापसी "यह परिणाम है।";}); }; SetTimeout (function () (console.log ('get resolved।'); GetFirst ()। तब (function (r) {console.log (r);})}}, 3000);
No comments:
Post a Comment