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. mysql - 一个表和多个表是多对多的关系,该怎么设计2. python 如何实现PHP替换图片 链接3. html5 - iOS的webview加载出来的H5网页,怎么修改html标签select的样式字体?4. 一个mysql联表查询的问题5. python如何不改动文件的情况下修改文件的 修改日期6. javascript - git clone 下来的项目 想在本地运行 npm run install 报错7. mysql主从 - 请教下mysql 主动-被动模式的双主配置 和 主从配置在应用上有什么区别?8. angular.js - 三大框架react、vue、angular的分析9. python - django 里自定义的 login 方法,如何使用 login_required()10. 主从备份 - 跪求mysql 高可用主从方案
