首页 > 解决方案 > 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); // 输出:- 这来自父进程
});

标签: javascriptnode.jschild-process

解决方案


在范围结束后使用函数来控制台值

第一个.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); // 输出:- 这来自父进程
});


推荐阅读