REACT本机Ping所有主机在IP不响应时都会停止



im试图在网络上ping所有LAN主机,以找出哪一个活着,以后找到一个托管Web服务的Raspberry Pi和Ideas OS,将我的应用程序与我的应用一起使用Raspberry Web服务。

到目前为止,我可以在React-Nativatient中获得此脚本,以检索第一个IP的响应时间。当某些IP未使用时,它会停止。

我需要得到的是ping所有主机。

有时我会在捆绑台上遇到这样的错误:

可能的未经治疗的承诺拒绝(ID:0):错误:ping失败错误:ping失败 在CreateRorrorFromerRordata(blob:http://localhost:8081/002b13c9-1cd5-412d-b052-f561e7c876a6:2022:17) 在Blob:http://localhost:8081/002b13c9-1cd5-412d-b052-f561E7C876A6:1974:27 在MessageQueue .__ InvokeCallback(blob:http://localhost:8081/002b13c9-1cd5-412d-b052-f561e7c876a6:2541:18) 在Blob:http://localhost:8081/002b13c9-1cd5-412d-b052-f561E7C876A6:2272:18 At MessageQueue .__ Guard(blob:http://localhost:8081/002b13c9-1cd5-412d-b052-b052-f561e7c876a6:2445:13) 在MessageQueue.invokecallbackandurnflushedqueue(blob:http://localhost:8081/002b13c9-1cd5-412d-b052-b052-f561e7c876a6:2271:14) at http://localhost:8081/debugger-ui/debuggerworker.js:72:58

import Ping from 'react-native-ping';
function check(ip) {
    return  Ping.start('192.168.0.' + ip);
}
async function lanScan(array) {
  for (const item of array) {
    var ok = await check(item);   
      console.log(ok + " " + item)
  }
  console.log('Done!');
}
var ips = [];
for(var i= 100; i<= 254; i++){
    ips.push(i);
}
lanScan(ips);

您的检查功能正在返回Promise,但是您没有设置来处理任何错误。因此,一旦ping在循环中失败,整个功能就会停止运行。您可以始终测试每个ping的一种方法是将支票包裹在try / catch中。例如:

async function lanScan(array) {
  for (const item of array) {
    try {
      var ok = await check(item)  
      console.log(ok + " " + item)
    } catch(e) {
      console.log(e)
    }
  }
  console.log('Done!')
}

相关内容

  • 没有找到相关文章

最新更新