Я пытаюсь передать дополнительную переменную (devicename) в session.pingHost, так что только после того, как ping вернет ответ, я запустил еще одну функцию (someOtherFunction), которая требует переменную. В настоящее время someOtherFunction получает devicename как неопределенное.Передача переменных в функцию node.js
Как бы это осуществить? Есть ли лучший способ сделать это?
var ping = require("net-ping");
var pingresult = '';
pingDevice('xxx.xxx.xxx.xxx', 'My Device');
function pingDevice(ipaddress, devicename){
var options = {
retries: 1,
timeout: 2000
};
var session = ping.createSession (options);
session.pingHost (ipaddress, function (error, target) {
if (error) {
console.log (target + ": ping FAIL");
pingresult = '0';
} else {
console.log (target + ": ping OK");
pingresult = '1';
}
someOtherFunction(pingresult,devicename);
});
}
Спасибо за ваш ответ. Проблема в том, что когда я делаю это так и называю someOtherFunction, devicename не определено. то есть. не передается в session.pingHost. – sardaukar81
@ sardaukar81: Значение 'devicename' в' pingHost' будет полностью зависеть от того, как вы вызываете 'pingHost', который вы не показывали. Если вы вызываете 'pingHost' с правильным значением в качестве второго аргумента, это же значение будет использоваться позже для вызова' someOtherFunction'. –
Привет, TJ: Я обновил свой вопрос в соответствии с вашими предложениями. Проблема в том, что session.pingHost является частью библиотеки net-ping, поэтому я не могу добавить в нее дополнительные аргументы. Я не могу понять, как передать devicename для someOtherFunction через session.pingHost. – sardaukar81