В настоящее время я создаю скрипт Nodejs, который должен взаимодействовать с веб-сервером и устройством локальной сети. Чтобы сделать программу максимально надежной, я хочу выполнить простой тест ping, чтобы проверить, можно ли подключиться к сетевому устройству.
var ping = require('ping');
function pingtest(host) {
ping.sys.probe(host, function (isAlive) {
var msg = isAlive ? 'host ' + host + ' is alive' : 'host ' + host + ' is dead';
console.log(msg);
return isAlive;
});
}
let pingSuccessful = pingtest('192.168.178.100');
console.log(pingSuccessful);
console.log('Should not executed before pingtest has finished.');
Вывод на консоли следующий:
undefined
Should not executed before pingtest has finished.
host 192.168.178.100 is dead
Проблема в том, что выполнение скрипта должно быть приостановлено до тех пор, пока pingtest () не завершит работу и не вернет результат. Моя цель состоит в том, чтобы console.error () сообщение и остановка сценария, если этот тест не прошел. Я уже пробовал это с async await и другими примерами кода на https://github.com/danielzzz/node-ping, но, к сожалению, это не сработало, как ожидалось.