【发布时间】:2012-05-22 01:49:51
【问题描述】:
我曾经看过这个演示,它打印出一段文本(就像你在输入 some-command --help 时得到的那样),然后它跳回到文本中的几个关键字并更改了文本颜色,在它已经在终端中打印出来之后。
这对我来说似乎很疯狂。他们是怎么做到的?
开始考虑,我猜stdout 和stdin 在技术上是一个“IO 流”,所以也许这是一个跟踪光标位置的持久变量?我记得在构建语言解析器时做过类似的事情。
目标是这样的:假设您在控制台中输入以下内容,它会输出一个空白数组,因为在 Node.js 中,它都是异步的,我们不想每次都在控制台中编写异步函数:
$ node app.js
> App.User.all()
=> []
然后当异步回调执行时,您返回并编辑=> [] 以包含结果:
$ node app.js
> App.User.all()
=> [#<User id:1>, #<User id:2>...]
即使有很多其他问题需要解决(与这个问题无关。我知道你可以定义一个全局回调并执行类似App.User.all(_c) 的操作) .
在终端输出已经打印后如何编辑它?
【问题讨论】: