首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用shelljs使Node中的错误超时?

如何使用shelljs使Node中的错误超时?
EN

Stack Overflow用户
提问于 2014-08-25 00:18:18
回答 1查看 633关注 0票数 2

我正在使用带有node webkit的shellJs在android平板电脑上工作。我想要做的是使用shelljs来快速启动,读取一个bootloader变量(product)。但在Fastboot中,如果没有连接任何设备,则返回"waiting-for- device“,并且连接保持打开。我想做的是让这个命令运行5秒,然后如果输出!= 'Soho‘抛出一个错误并取消函数。

这是我当前的代码

代码语言:javascript
复制
$('#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},但我不能很好地理解promises,也找不到关于它们的很好的文档。希望有人能在这里教我一些东西。

EN

回答 1

Stack Overflow用户

发布于 2017-01-05 22:34:11

尝试运行您的子进程异步,等待5秒,然后终止它。

代码语言:javascript
复制
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);

您必须像我的示例中那样侦听数据,然后检查它是您想要的字符串还是“等待设备”。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25473715

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档