चलो कहते हैं कि मैं एक parent.js
एक विधि parent
Node.js में बाल प्रक्रिया में फ़ंक्शन/कॉलबैक कैसे पास करें?
var childProcess = require('child_process');
var options = {
someData: {a:1, b:2, c:3},
asyncFn: function (data, callback) { /*do other async stuff here*/ }
};
function Parent(options, callback) {
var child = childProcess.fork('./child');
child.send({
method: method,
options: options
});
child.on('message', function(data){
callback(data,err, data,result);
child.kill();
});
}
नामित युक्त है child.js
process.on('message', function(data){
var method = data.method;
var options = data.options;
var someData = options.someData;
var asyncFn = options.asyncFn; // asyncFn is undefined at here
asyncFn(someData, function(err, result){
process.send({
err: err,
result: result
});
});
});
इस बीच में मैं सोच रहा था चलो अगर बच्चे की प्रक्रिया के लिए कार्यों गुजर Node.js. में अनुमति नहीं है
asyncFn
undefined
child
पर भेजे जाने के बाद क्यों होगा?
क्या यह JSON.stringify
से संबंधित है?
ओह, मुझे यह करने के लिए हराया: पी – loganfsmyth
'नया समारोह है ('वापसी' + funcString)() अविश्वसनीय कोड के लिए सुरक्षित? – M4GNV5
@ एम 4 जीएनवी 5 नहीं, आपको "अविश्वसनीय कोड" के साथ सुरक्षित होने के लिए उपयुक्त ओएस-स्तरीय सुरक्षा के साथ बच्चे की प्रक्रिया में 'vm' मॉड्यूल का उपयोग करने की आवश्यकता होगी। – mscdex