मैं समानांतर में दो कार्यों को चलाने के लिए aync.parallel का उपयोग कर रहा हूं। कार्य आरएसएस फ़ीड का अनुरोध करते हैं। फिर आरएसएस फ़ीड को पार्स किया जाता है और मेरे वेब पेज में जोड़ा जाता है।नोड.जेएस async.parallel तब तक इंतजार नहीं करता जब तक कि सभी कार्यों को पूरा नहीं किया जाता है
लेकिन किसी कारण से async.parallel
दो कार्य पूर्ण नहीं करने तक
एक बार कार्य पूरा कर लिया है, परिणाम एक सरणी के रूप में अंतिम कॉलबैक करने के लिए पारित कर रहे हैं इंतजार किए बिना कॉलबैक विधि चलाता है ।
मेरा कोड।
require('async').parallel([ function(callback) {
fetchRss(res, bbcOpts); // Needs time to request and parse
callback();
}, function(callback) {
// Very fast.
callback();
} ], function done(err, results) {
if (err) {
throw err;
}
res.end("Done!");
});
असल में मैंने केवल "हो गया है!" मेरे वेब पेज पर। क्यूं कर?
मुझे res.end()
पर कॉल करने की आवश्यकता क्यों है?
Node.JS documentation का कहना है:
विधि, response.end(), प्रत्येक प्रतिक्रिया पर बुलाया जाना चाहिए।
यदि मैं इसे कॉल नहीं करता हूं, तो मेरा वेब पेज "डाउनलोड" किया जा रहा है (मेरा मतलब है कि मेरे ब्राउज़र की पता पंक्ति में प्रगति पट्टी)।