2015-05-19 36 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

相關問題