मैं स्पष्ट रूप से जेएस वादे के हल या "वापसी" के अर्थशास्त्र के बारे में कुछ गलत समझ रहा हूं।जावास्क्रिप्ट वादे के लिए कैसे अवरुद्ध करें और हल किए गए परिणाम को वापस करें?
मुझे एक ऐसे फ़ंक्शन द्वारा बुलाया जा रहा है जो मुझे एक मान वापस करने के लिए सिंक्रोनस होने की अपेक्षा करता है। कि मूल्य की गणना कुछ एसिंक्रोनस कोड (विशेष रूप से, एक dstore Collection
पर foreach विधि मेरा लक्ष्य क्या है कोशिश कर रहा हूँ लगभग यह है की आवश्यकता है, लेकिन यह काम नहीं करता समारोह mySynchronousFunction कोई वापसी मूल्य है।
function mySynchronousFunction() {
var accumulator = {};
var myPromise = doAsynchronousThingThatSideEffectsAccumulator();
// Now my caller is expecting the value of accumulator.
myPromise.then(function() {return accumulator;})
}
मैं समझता हूँ कि जे एस इतना है कि यह ब्लॉक करने के लिए शांत नहीं कर रहा है, लेकिन तुल्यकालिक कोड को अतुल्यकालिक चिपकाने के लिए कुछ पैटर्न होना चाहिए, एकल पिरोया कार्यान्वयन के लिए अनुमति देने के लिए, कि मैं बस नहीं छूटा है है।
यह एकल-थ्रेडेड कार्यान्वयन के लिए अनुमति देने के बारे में नहीं है - ** सभी ** कार्यान्वयन आवश्यक रूप से सिंगल-थ्रेडेड हैं। – meagar
@ मीगर जो सच नहीं है - कुछ भी नहीं कहता है कि सभी कार्यान्वयन एकल धागे हैं - उदाहरण के लिए जावा में राइनो। –
कोई उत्तर नहीं जोड़ सकता है, लेकिन यह मेरे लिए सहायक था: http://www.tivix.com/blog/making-promises-in-a-synchronous-manner/ – rainabba