NodeJS - Основной файл не получает возврат службы поиска внутри функции - PullRequest
0 голосов
/ 28 февраля 2019

Итак, у меня есть файл 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' печатает 'undefined'.

Почему я не получаю вывод функции hasInternet?

1 Ответ

0 голосов
/ 28 февраля 2019

Кажется, что используемая вами функция асинхронна.Кроме того, ваша функция на самом деле ничего не возвращает, так что даже если бы она была синхронной, вы все равно получили бы undefined.Попробуйте вместо этого, используя обещания:

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);
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...