Node.js
एक Node.js लाइब्रेरी बनाना जो वादे और त्रुटि-पहले कॉलबैक दोनों का समर्थन करता है
खोज…
परिचय
बहुत से लोग वादों और / या एसिंक्स / वेट सिंटैक्स के साथ काम करना पसंद करते हैं, लेकिन मॉड्यूल लिखते समय कुछ प्रोग्रामर के लिए उपयोगी होगा कि वे क्लासिक कॉलबैक शैली के तरीकों का भी समर्थन करें। दो मॉड्यूल, या फ़ंक्शन के दो सेट बनाने या प्रोग्रामर द्वारा आपके मॉड्यूल को निर्दिष्ट करने के बजाय, आपका मॉड्यूल ब्लूबर्ड के asCallback () या Q के नाइटिफ़ेट () का उपयोग करके एक ही समय में दोनों प्रोग्रामिंग विधियों का समर्थन कर सकता है।
उदाहरण मॉड्यूल और संवाददाता ब्लूबर्ड का उपयोग कर कार्यक्रम
math.js
'use strict';
const Promise = require('bluebird');
module.exports = {
// example of a callback-only method
callbackSum: function(a, b, callback) {
if (typeof a !== 'number')
return callback(new Error('"a" must be a number'));
if (typeof b !== 'number')
return callback(new Error('"b" must be a number'));
return callback(null, a + b);
},
// example of a promise-only method
promiseSum: function(a, b) {
return new Promise(function(resolve, reject) {
if (typeof a !== 'number')
return reject(new Error('"a" must be a number'));
if (typeof b !== 'number')
return reject(new Error('"b" must be a number'));
resolve(a + b);
});
},
// a method that can be used as a promise or with callbacks
sum: function(a, b, callback) {
return new Promise(function(resolve, reject) {
if (typeof a !== 'number')
return reject(new Error('"a" must be a number'));
if (typeof b !== 'number')
return reject(new Error('"b" must be a number'));
resolve(a + b);
}).asCallback(callback);
},
};
index.js
'use strict';
const math = require('./math');
// classic callbacks
math.callbackSum(1, 3, function(err, result) {
if (err)
console.log('Test 1: ' + err);
else
console.log('Test 1: the answer is ' + result);
});
math.callbackSum(1, 'd', function(err, result) {
if (err)
console.log('Test 2: ' + err);
else
console.log('Test 2: the answer is ' + result);
});
// promises
math.promiseSum(2, 5)
.then(function(result) {
console.log('Test 3: the answer is ' + result);
})
.catch(function(err) {
console.log('Test 3: ' + err);
});
math.promiseSum(1)
.then(function(result) {
console.log('Test 4: the answer is ' + result);
})
.catch(function(err) {
console.log('Test 4: ' + err);
});
// promise/callback method used like a promise
math.sum(8, 2)
.then(function(result) {
console.log('Test 5: the answer is ' + result);
})
.catch(function(err) {
console.log('Test 5: ' + err);
});
// promise/callback method used with callbacks
math.sum(7, 11, function(err, result) {
if (err)
console.log('Test 6: ' + err);
else
console.log('Test 6: the answer is ' + result);
});
// promise/callback method used like a promise with async/await syntax
(async () => {
try {
let x = await math.sum(6, 3);
console.log('Test 7a: ' + x);
let y = await math.sum(4, 's');
console.log('Test 7b: ' + y);
} catch(err) {
console.log(err.message);
}
})();
Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow