繁体   English   中英

我如何使用Shell.js在Node中超时错误?

[英]How can i timeout an error in Node with shelljs?

我正在将shellJs与node webkit一起在Android平板电脑上使用。 我想做的是使用Shelljs Fastboot读取bootloader变量(产品)。 但是在Fastboot中,如果未连接任何设备,则返回“等待设备”,并且连接保持打开状态。 我想做的是让此命令运行5秒钟,然后如果输出!='Soho'抛出错误并取消功能。

这是我当前的代码

$('#fbbtn').click(function(){
    var getVar = terminal.exec('fastboot -i 0x1949 getvar product');
    var getSerial = terminal.exec('fastboot -i 0x1949 devices');
    var test getVar.output.match(/Soho/g);
    if(test=='Soho'){
         fbSerial=getSerial.output.substr(0,16);
                    }
    else alert('ERROR');
});

我知道shelljs的exec提供了{async:true},但是对诺言的理解不够,也找不到关于它们的很好的文档。 希望有人可以在这里教我一点

尝试异步运行您的子进程,等待5秒钟,然后将其杀死。

var getvar = terminal.exec('fastboot -i 0x1949 getvar product', { async: true });
getvar.stdout.on('data', function(data) {
   var product = data;
   //Use the aquired value here
});

setTimeout(function() {
     getvar.kill();
}, 5000);

您将必须像在我的示例中那样监听数据,然后检查它是否是所需的字符串或“等待设备”。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM