我有执行npm install的代码,如下所示:
cmd := exec.Command("npm", "install")
并以
结束if err = cmd.Wait(); err != nil {
logs.("Error running %s: %v\n", cp[1:], err)
return err
}
我想使用进度条,我发现了以下内容 https://github.com/cheggaaa/pb 但由于我不控制执行的时间(我不知道它什么时候完成),我怎么能用呢?
更新
由于我们无法计算将要花费的时间(这取决于网络等)所以我只是想表明某些东西在起作用, 显示进程正在运行,因为用户等待20秒,他认为没有任何效果,怎么办?
答案 0 :(得分:1)
答案非常简短:如果您没有任何指示性单位,则不能。
稍微长一点的答案:向用户提供反馈可以通过多种方式完成。如果您没有详细的进度信息(例如:已经完成了10个步骤中的n个步骤,或者已经过了10秒),则无法真正显示有意义的进度条。
您可以向用户提供有关正在发生的事情的反馈。然而,这是npm已经做过的事情,为什么不直接显示输出呢?
如果您只关心显示进度条而不管其有多大意义,那么您可以做的是猜测该进程需要多长时间。只需将它计时一次,并将其作为参考点。