我怎样才能超时与shelljs节点的错误?

我正在使用节点webkit的shellJs在Android平板电脑上工作。 我想要做的是使用shelljs Fastboot读取引导程序variables(产品)。 但在Fastboot中,如果没有连接设备,则返回值为“等待设备”,连接保持打开状态。 我想要做的就是让这个命令运行最多5秒,然后如果输出!='Soho'抛出一个错误和取消function。

这是我现在的代码

$('#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},但是不太了解promise,也找不到很好的关于它们的文档。 希望有人能在这里教育我一点

尝试运行你的subprocessasynchronous,等待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); 

你将不得不听我的例子中的数据,然后检查它是你想要的string还是“等待设备”。