javascript - 為什么 process.stdin 會有 write 方法? ???
問題描述
寫在前面根據 官方API,在 stream 中只有可寫流才會有 write 方法,但是有這樣一個例子卻使用 process.stdin.write() 發送數據。而 process.stdin 在 官方API 中是可讀流。
問題:RT,如果是其他的原因造成這樣一個情況,麻煩詳細描述一下。謝謝
參考代碼:stdin.js
/** * 監聽輸入的數據,并輸出到控制臺 */// 重新開始 stdin streamprocess.stdin.resume();// 監聽輸入的數據process.stdin.on(’data’, function (data) { var number; try { // 將輸入的信息解析成數字 number = parseInt(data.toString(), 10); // 自增1 number += 1; // 輸出 數字 process.stdout.write(number + 'n',function() { console.log(1); }); } catch (err) { process.stderr.write(err.message + 'n'); }});
stdin_test.js
var spawn = require(’child_process’).spawn;// 使用 node 進程創建一個子進程執行 stdin.jsvar child = spawn(’node’, [’stdin.js’]);// 每隔一秒調用一次該函數setInterval(function() { // 生成一個小于 10 的隨機數 var number = Math.floor(Math.random() * 10); // 將該隨機數發送到子進程 child.stdin.write(number + 'n'); // 監聽子進程的輸出 并打印出來 // 此處對應 stdin.js 的 process.stdout.write child.stdout.once(’data’, function(data) { console.log(’child replied to ’ + number + ’ with: ’ + data); });}, 1000);child.stderr.on(’data’, function(data) { process.stdout.write(data);});
問題解答
回答1:注意這里的 stdin 是 ChildProcess 的,是可寫流
https://nodejs.org/dist/lates...
相關文章:
1. angular.js - angular里的ui-view里,獲取當前頁面的狀態參數用$state.params,在vue里類似的語法是什么呢?2. 前端 - CSS3問題:請問-webkit-background-clip屬性,需要寫在background屬性后面嗎?3. javascript - 按鈕鏈接到另一個網址 怎么通過百度統計計算按鈕的點擊數量4. html5 - h5+中webview的show方法有延遲5. 微信開放平臺 - ios APP能不能打開微信然后通過微信跳轉到指定的URL?6. 淺談vue生命周期共有幾個階段?分別是什么?7. node.js - nodejs+express+vue8. Mysql啟動發生系統錯誤10679. nginx - vue-cli生成的項目打包發到服務器后怎么代理api?10. 大家好,我想請問一下怎么做搜索欄能夠搜索到自己網站的內容。
