2015-05-19 39 views
0

我用grunt构建了一个应用程序,并且我正在制作一个使用此应用程序的web界面(使用节点和角度)。 我创建了一个与子进程中执行的NodeJS繁重的任务的按钮:在web应用程序中的咕task任务的进度

child_process.exec(my-command-grunt[, options], callback) 

它正常工作,但任务需要相当长的时间(10秒〜)。出于这个原因,当时我会展示一个装载器,但我宁愿有一个进度条。如果有一种方法可以在运行时了解咕噜任务的进度,这将帮助我通过网页上的动态进度条替换我的装载程序。

非常感谢!

+0

您的咕噜声进程如何记录其状态? – dm03514

+0

我不确定我是否理解了你的问题,但是我在控制台(我开始使用节点服务器)上获得了日志,与我在控制台中执行grunt命令时一样(期望它不是渐进式的,我一次拿到日志) – Pilipo

回答

0

据我所知,目前运行任务的百分比进度是不可能的。

但有一个解决方案! A child_process.exec将返回ChildProcess实例。然后,您可以访问stdout和stderr流(通过child.stdout和child.stderr)。这些流是事件发射器,您可以监听data事件并使用一些正则表达式来解析此输出。正则表达式可以是类似于/Running "([^"]*)"/的东西,然后您可以匹配其结果并向客户端报告咕噜声的进度。

+0

谢谢!你知道我是否可以做其他事情而不是正则表达式,比如在每个任务结束时发出咕噜声? – Pilipo

+0

您可以使用正则表达式来匹配来自grunt的结果并在每个匹配上发出事件。但这只是一个想法。 – janzal

+0

如何为此创建一个npm模块! – Shreyas

相关问题