Node.js
कॉलबैक नरक से बचें
खोज…
Async मॉड्यूल
स्रोत GitHub से डाउनलोड के लिए उपलब्ध है। वैकल्पिक रूप से, आप npm का उपयोग करके स्थापित कर सकते हैं:
$ npm इंस्टाल - save async
साथ ही बोवर का उपयोग करना:
$ bower स्थापित async
उदाहरण:
var async = require("async");
async.parallel([
function(callback) { ... },
function(callback) { ... }
], function(err, results) {
// optional callback
});
Async मॉड्यूल
शुक्र है, Async.js जैसे पुस्तकालय समस्या को रोकने और रोकने के लिए मौजूद हैं। Async आपके कोड के शीर्ष पर फ़ंक्शंस की एक पतली परत जोड़ता है, लेकिन कॉलबैक नेस्टिंग से बचकर जटिलता को कम कर सकता है।
Async में कई सहायक विधियाँ मौजूद हैं जिनका उपयोग विभिन्न स्थितियों में किया जा सकता है, जैसे श्रृंखला, समानांतर, झरना, आदि। प्रत्येक फ़ंक्शन का एक विशिष्ट उपयोग-मामला है, इसलिए यह जानने के लिए कुछ समय लें कि कौन सी स्थितियों में मदद मिलेगी।
Async के रूप में अच्छा है, कुछ भी पसंद है, यह सही नहीं है। श्रृंखला, समानांतर, हमेशा के लिए, आदि के संयोजन से दूर किया जाना बहुत आसान है, इस बिंदु पर कि आप सही स्थान पर हैं जहां आपने गन्दा कोड के साथ शुरुआत की थी। सावधान रहें कि समय से पहले अनुकूलन न करें। सिर्फ इसलिए कि कुछ async कार्य समानांतर में चलाए जा सकते हैं इसका मतलब यह नहीं है कि उन्हें हमेशा करना चाहिए। हकीकत में, चूंकि नोड केवल एकल-थ्रेडेड है, इसलिए Async का उपयोग करने के समानांतर समानांतर चलने वाले कार्यों में कोई प्रदर्शन लाभ नहीं है।
स्रोत https://github.com/caolan/async से डाउनलोड के लिए उपलब्ध है। वैकल्पिक रूप से, आप npm का उपयोग करके स्थापित कर सकते हैं:
$ npm इंस्टाल - save async
साथ ही बोवर का उपयोग करना:
$ bower स्थापित async
Async का झरना उदाहरण:
var fs = require('fs');
var async = require('async');
var myFile = '/tmp/test';
async.waterfall([
function(callback) {
fs.readFile(myFile, 'utf8', callback);
},
function(txt, callback) {
txt = txt + '\nAppended something!';
fs.writeFile(myFile, txt, callback);
}
], function (err, result) {
if(err) return console.log(err);
console.log('Appended text!');
});