所以我有一个名为“ myinternet_utils.js”的文件和以下功能:
exports.hasInternet = function () {
require('dns').lookupService('8.8.8.8', 53, function (err, hostname, service) {
return hostname;
});
};
我还有一个名为“ server.js”的文件,其中包含以下代码:
var ieUtils_ = require('./myinternet_utils.js');
console.log( ieUtils_.hasInternet() );
“ console.log”显示“未定义”。
为什么我没有得到hasInternet函数的输出?
答案 0 :(得分:0)
似乎您正在使用的函数是异步的。同样,您的函数实际上不会返回任何内容,因此即使它是同步的,您仍然会得到undefined
。改用Promise尝试一下:
exports.hasInternet = function () {
return new Promise(function(resolve, reject) {
require('dns').lookupService('8.8.8.8', 53, function (err, hostname, service) {
if(err){
return reject(err);
}
resolve(hostname);
});
});
};
并在主文件中
var ieUtils_ = require('./myinternet_utils.js');
ieUtils_.hasInternet().then(function(result){
console.log(result);
})