嗨,我正在尝试从nodejs ping端口。我使用tcp-ping模块。我想从tcp.probe函数返回可用值。但是我不能。 这是我的代码
var tcpp = require('tcp-ping');
function ping_port(callback){
tcpp.probe('10.5.177.52', 8080, function(err, available) {
return_value = available;
callback(available);
});
}
function read() {
console.log("Read done")
return return_value;
}
module.exports.ping = function()
{
var port_status = ping_port(read);
console.log(port_status);
return port_status;
}
我通过等待return_value变量不等于undefined来解决我的问题。这是我的代码。
var tcpp = require('tcp-ping');
var return_value;
module.exports.ping = async function(page,ip)
{
tcpp.probe(ip, 8080, function(err, available) {
return_value = available;
});
while(return_value === undefined)
await page.waitFor(100);
return return_value;
}
页面是操纵a模块的功能。我从主要异步函数调用await foo.ping('page' , 'ip')
并完成了它。
我对我的英语和编码不好感到抱歉。我是编码初学者。
答案 0 :(得分:1)
您不能从异步函数返回值。而是使模块的用户将回调传递给ping函数。
module.exports.ping = function(callback)
{
ping_port(callback);
}
像这样使用它:
function foo(port_status) {
console.log("This is the port status: " + port_status);
}
const ping = require('./your_module');
ping(foo);