[英]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.