javascript - nodejs child_process范围问题
问题描述
我正在使用 nodejs 的 child_process(fork) 然后我将数据发送到特定文件并接收数据,但在接收到流程执行后不控制台该数据
第一个.js
var cp = require('child_process');
var child = cp.fork('./s/abc.js');
child.send({data:'这来自父进程'});
变量 x ;
child.on('message', function(m) {
console.log(m); // 输出:- 这来自子进程
x = m;
});
控制台.log(m);
控制台.log(x);
abc.js (./s/abc.js)
process.send({data:'这来自子进程'});
变量 x ;
process.on('message', function(m) {
console.log(m); // 输出:- 这来自父进程
});
解决方案
在范围结束后使用函数来控制台值
第一个.js
var cp = require('child_process');
var child = cp.fork('./s/abc.js');
child.send({data:'这来自父进程'});
变量 x ;
child.on('message', function(m) {
console.log(m); // 输出:- 这来自子进程
callTempFun(m);
});
函数 callTempFun(m){
console.log(m); // 输出:- 这来自子进程
}
abc.js (./s/abc.js)
process.send({data:'这来自子进程'});
变量 x ;
process.on('message', function(m) {
console.log(m); // 输出:- 这来自父进程
});
推荐阅读
- android - 在 LiveData 上没有 setValue 的情况下调用 ViewModel 类是否正常?
- screenshot - 如何在 Visual Studio 中拍摄代码快照?
- chatbot - ServiceNow 聊天机器人 - 虚拟代理分析仪表板不工作
- python - 如何有效地从熊猫数据框中获取任意日期的滚动窗口统计信息
- python - Python:用于二维数组的嵌套 for 循环
- windows - 为什么点源运算符将字符串转换为命令
- autodesk-forge - Autodesk Forge - 文档管理“描述”和“集”信息可用性
- haskell - 没有因使用“道具”而产生的(任意自然)实例
- vb.net - how to properly remove files added under "My Project" in solution explorer?
- python - How to display number of rows with only lower case characters