テキストの段落を出力したこのデモを一度見たことがあります(入力したときに得られるようにsome-command --help
)。その後、テキスト内のいくつかのキーワードに戻り、テキストの色を変更しました。 .
それは私にはクレイジーに思えます。彼らはどうやってそれをしたのですか?
stdout
考え始めて、技術的には「IOストリーム」だと思うstdin
ので、カーソルの位置を追跡する永続変数でしょうか?言語パーサーを構築するときに、そのようなことをしたことを覚えています。
目標は次のようになります: コンソールに次のように入力すると、空白の配列が出力されるとします。これは、Node.js ではすべてが非同期であり、コンソールで毎回非同期関数を記述したくないためです。
$ node app.js
> App.User.all()
=> []
次に、非同期コールバックが実行されたら、戻って編集し=> []
、結果を含めます。
$ node app.js
> App.User.all()
=> [#<User id:1>, #<User id:2>...]
他にも解決すべき問題がたくさんあるとしても、少なくとも実装方法を知っていれば素晴らしいことです (この質問とは関係ありません。また、グローバル コールバックを定義して、次のようなことができることも知っていますApp.User.all(_c)
)。
すでに印刷された後、端末出力をどのように編集しますか?