समारोह है:नक्शा() जावास्क्रिप्ट सिंक्रोनस में है?
[1,2,3].map(function (item)
{
console.log(item);
//return 'something';
});
मेरे अपेक्षित व्यवहार केवल 1 आउटपुट के रूप में हो रही है, जब तक कि मैं
//return 'something'
uncomment लेकिन मैं वास्तव में
1
2
3
मैं गलत क्या कर रहा हूँ मिल सकता है?
अद्यतन:
मैं NodeJS साथ कि परीक्षण कर रहा हूँ।
मैं वास्तव में समझ में नहीं आता।
var async = require("async");
[1,2,3].map(function (item)
{
console.log(item);
//return 'something';
});
async.map([1,2,3], function (item,callback)
{
console.log(item);
//callback(null,true)
}, function (err,result)
{
console.log(result);
}
);
दोनों एक ही
1
2
3
लौटने और मैं सच में मैं जब तक एक वापसी या कॉलबैक तक अगले आइटम निष्पादित किया जाता है पाने के इंतजार करना चाहते हैं।
हल
async.mapSeries([1,2,3], function (item,callback)
{
console.log(item);
//callback(null,true)
}, function (err,result)
{
console.log(result);
}
);
तरह से यह करने के लिए है।
आपका "अपेक्षित व्यवहार" क्यों है? – Alnitak
आप कौन सा ब्राउज़र इस कोशिश कर रहे हैं?Google क्रोम के लिए मुझे दोनों मामलों में अपेक्षित परिणाम मिल रहा है। – robieee
नोट: नक्शा एक सरणी में प्रत्येक तत्व के लिए एक बार प्रदान किए गए कॉलबैक फ़ंक्शन को कॉल करता है। यह क्या मैं गूगल क्रोम डिबगर में मिल गया है: [1,2,3] .map (समारोह (आइटम) { console.log (आइटम); // वापसी 'कुछ'; }) 1 VM63: 4 2 VM63: 4 3 VM63: 4 [अपरिभाषित, अपरिभाषित, अपरिभाषित] [1,2,3] .map (समारोह (आइटम) { console.log (आइटम); वापसी ' कुछ '; }) 1 वीएम 66: 4 2 वीएम 66: 4 3 वीएम 66: 4 ["कुछ", "कुछ", "कुछ"] – robieee