0
從我所瞭解的情況來看,這應該可行,但對我來說目前還沒有運氣。發佈這個問題希望我做一些非常愚蠢的事情。我有:如何使用child_process.spawn生成從ruby腳本輸出流輸出
hello.rb的
#!/usr/bin/env ruby
3.times do
puts 'hello'
sleep 1
end
tail.js
var cp = require('child_process');
var tail = cp.spawn('./hello.rb');
tail.stdout.pipe(process.stdout);
/* Also tried this: */
tail.stdout.on('data', function(data) {
console.log(data.toString())
});
hello.rb
是可執行的。
當我運行node tail.js
,3個hello被打印到標準輸出,但後,循環完成。您可以通過將更改爲loop
進行無限循環驗證,並在stdout
中看不到任何內容。無限循環的情況實際上是我試圖找出如何去做的。
我在做什麼錯?
工作,比你!你能補充一點關於那是什麼嗎? – mehulkar
我還編輯了問題標題/標籤,以反映這與ruby比'child_process'或節點有關。 – mehulkar
'$ stdout.flush'刷新當前的stdout緩衝區,因爲默認情況下寫入stdout是異步的。 '$ stdout.sync = true'切換到同步stdout輸出,該輸出禁用stdout緩衝區並確保在繼續執行之前刷新每個寫入。 – mscdex