मैं समारोह फोन पर सीधे एक टाइमआउट सेट करने के लिए किसी भी तरह से के बारे में सुनिश्चित नहीं हूँ, लेकिन आप अपने आप को बाहर समय को संभालने के लिए कॉल के चारों तरफ छोटे आवरण बना सकते हैं:
var dns = require('dns');
var nsLookup = function(domain, timeout, callback) {
var callbackCalled = false;
var doCallback = function(err, domains) {
if (callbackCalled) return;
callbackCalled = true;
callback(err, domains);
};
setTimeout(function() {
doCallback(new Error("Timeout exceeded"), null);
}, timeout);
dns.resolveNs(domain, doCallback);
};
nsLookup('stackoverflow.com', 1000, function(err, addresses) {
console.log("Results for stackoverflow.com, timeout 1000:");
if (err) {
console.log("Err: " + err);
return;
}
console.log(addresses);
});
nsLookup('stackoverflow.com', 1, function(err, addresses) {
console.log("Results for stackoverflow.com, timeout 1:");
if (err) {
console.log("Err: " + err);
return;
}
console.log(addresses);
});
ऊपर स्क्रिप्ट के लिए उत्पादन :
Results for stackoverflow.com, timeout 1:
Err: Error: Timeout exceeded
Results for stackoverflow.com, timeout 1000:
[ 'ns1.serverfault.com',
'ns2.serverfault.com',
'ns3.serverfault.com' ]
स्रोत
2012-05-27 22:45:07
एनपीएम खोजना मैंने https://github.com/tjfontaine/node-dns भी पाया जो टाइमआउट का समर्थन करता है ....? – Alfred