javascript - 為什么 process.stdin 會(huì)有 write 方法? ???
問(wèn)題描述
寫(xiě)在前面根據(jù) 官方API,在 stream 中只有可寫(xiě)流才會(huì)有 write 方法,但是有這樣一個(gè)例子卻使用 process.stdin.write() 發(fā)送數(shù)據(jù)。而 process.stdin 在 官方API 中是可讀流。
問(wèn)題:RT,如果是其他的原因造成這樣一個(gè)情況,麻煩詳細(xì)描述一下。謝謝
參考代碼:stdin.js
/** * 監(jiān)聽(tīng)輸入的數(shù)據(jù),并輸出到控制臺(tái) */// 重新開(kāi)始 stdin streamprocess.stdin.resume();// 監(jiān)聽(tīng)輸入的數(shù)據(jù)process.stdin.on(’data’, function (data) { var number; try { // 將輸入的信息解析成數(shù)字 number = parseInt(data.toString(), 10); // 自增1 number += 1; // 輸出 數(shù)字 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 進(jìn)程創(chuàng)建一個(gè)子進(jìn)程執(zhí)行 stdin.jsvar child = spawn(’node’, [’stdin.js’]);// 每隔一秒調(diào)用一次該函數(shù)setInterval(function() { // 生成一個(gè)小于 10 的隨機(jī)數(shù) var number = Math.floor(Math.random() * 10); // 將該隨機(jī)數(shù)發(fā)送到子進(jìn)程 child.stdin.write(number + 'n'); // 監(jiān)聽(tīng)子進(jìn)程的輸出 并打印出來(lái) // 此處對(duì)應(yīng) 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);});
問(wèn)題解答
回答1:注意這里的 stdin 是 ChildProcess 的,是可寫(xiě)流
https://nodejs.org/dist/lates...
相關(guān)文章:
1. 在應(yīng)用配置文件 app.php 中找不到’route_check_cache’配置項(xiàng)2. 跨類(lèi)調(diào)用后,找不到方法3. sql語(yǔ)句 - 如何在mysql中批量添加用戶?4. 怎么php怎么通過(guò)數(shù)組顯示sql查詢(xún)結(jié)果呢,查詢(xún)結(jié)果有多條,如圖。5. mysql - 表名稱(chēng)前綴到底有啥用?6. 編輯成功不顯示彈窗7. wamp中的mySQL可以單獨(dú)使用嗎8. 為什么php修改數(shù)據(jù)無(wú)法同步到數(shù)據(jù)庫(kù),只是當(dāng)前頁(yè)面修改成功?9. 哭遼 求大佬解答 控制器的join方法怎么轉(zhuǎn)模型方法10. 在mybatis使用mysql的ON DUPLICATE KEY UPDATE語(yǔ)法實(shí)現(xiàn)存在即更新應(yīng)該使用哪個(gè)標(biāo)簽?
