दिलचस्प पोस्ट
मैं चुनिंदा पायथन स्ट्रिंग में प्रतिशत (%) कैसे बच सकता हूं? बनाम उप-क्वेरी में शामिल हों आपकी पसंद की भाषा के बारे में पांच चीजों से नफरत है? मैं रैंड () के साथ यादृच्छिक संख्याओं का एक ही क्रम क्यों प्राप्त करता हूं? मैं एक जेफ्राम के अंदर जेपीएनएल कैसे बदलूं? PHP सत्र रीडायरेक्ट के बाद खो गया आप एक MySQL Datetime कॉलम के लिए एक डिफ़ॉल्ट मान कैसे सेट करते हैं? पायथन में @staticmethod और @classmethod के बीच अंतर क्या है? php मेल 'से' हैडर के साथ समस्या स्कैला में जेसनॉन लाइब्रेरी का उपयोग कैसे करें? जब फ़ंक्शन के पास एक विशिष्ट आकार के सरणी पैरामीटर होता है, तो उसे एक सूचक के साथ क्यों बदल दिया जाता है? जावास्क्रिप्ट / jQuery के साथ एक HTML तत्व से सभी गुण प्राप्त करें WPF छवि एक कैनवास पर परतों के साथ पैन, ज़ूम और स्क्रॉल करें पैकेज नाम से आवेदन नाम प्राप्त करें एक सूची <X> से सूची के लिए <Y> कास्टिंग के लिए छोटे सिंटैक्स?

वायर्ड का उपयोग करके कॉल बैक फ़ंक्शन से वापसी पाने के लिए एक चर सेट करना

मुझे सटीक मान के बजाय "ऑब्जेक्ट" मान मिल रहा है कॉलबैक फ़ंक्शन का उपयोग करके मुझे वापस कैसे प्राप्त किया जा सकता है?

function loadDB(option, callBack){ var dfd = new jQuery.Deferred(), db = window.openDatabase('mydb', '1.0', 'Test DB', 1024*1024), selectQuery = "SELECT log FROM LOGS WHERE id = ?"; db.transaction(function(tx){ tx.executeSql(selectQuery,[option],function(tx,results){ var retval; if( results.rows.length ) { retval = unescape(results.rows.item(0)['log']); } var returnValue = dfd.resolve(retval); }); }); return dfd.promise(); } results = loadDB(2).then(function(val){ return val; } ); console.log("response***",results); 

वेब के समाधान से एकत्रित समाधान "वायर्ड का उपयोग करके कॉल बैक फ़ंक्शन से वापसी पाने के लिए एक चर सेट करना"

वादा एक बंद बॉक्स की तरह है:

यहां छवि विवरण दर्ज करें

आस्थगित वस्तु के साथ आपका उपरोक्त कोड, बॉक्स बनाता है, और आपको यह जानने की सुविधा देता है कि भविष्य में कुछ समय आप इसे खोल सकते हैं। उस समय जब कोड के ऊपर कॉल किया .resolve

जब आप results = loadDB(2) करते हैं तो आप परिणामों में एक बॉक्स डाल रहे हैं।

एक वादा में भी एक तरीका है जो बॉक्स को खोलता है, मूल्य पर काम करता है और मूल्य पर एक और बॉक्स देता है (जिस तरह से किसी भी अतिरिक्त बक्से को खोलना)। यह विधि है। तब:

बॉक्स में, यह करता है:

यहां छवि विवरण दर्ज करें => ( खुला । => ई ) => ई

यही है, यह बॉक्स लेता है, इसे खोलता है और उस फ़ंक्शन पर लागू होता है जो उसमें मूल्य के लिए कुछ करता है और फिर उस पर नया मान वाला दूसरा बॉक्स देता है।

इसलिए, यदि आप मूल्य संसाधित करना चाहते हैं, तो आपको उस जगह पर हुक करनी होगी जहां बॉक्स खुला है, जैसे बर्गी ने सुझाव दिया:

 loadDB(2).then(function(val){ console.log("response***", val); }); // this also returns a promise btw 

आप एक वादा (यहां: एसिंक्रोनस) संदर्भ से हल मूल्य प्राप्त नहीं कर सकते।

इसके बजाए, आपको console.log कॉल और अन्य सभी चीजें जो वादे के संदर्भ में इस पर निर्भर करती हैं, को स्थानांतरित करने की आवश्यकता होगी:

 loadDB(2).then(function(val){ console.log("response***", val); });