Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将大变量从子进程传递到父进程的正确方法_Javascript_Arrays_Node.js - Fatal编程技术网

Javascript 将大变量从子进程传递到父进程的正确方法

Javascript 将大变量从子进程传递到父进程的正确方法,javascript,arrays,node.js,Javascript,Arrays,Node.js,我正在尝试将一个大数组从子进程传输到父进程。一个数组中的元素数约为200000*100*2。我可能需要在未来传递更大的价值 下面是将数组传递给父进程的子进程 process.on('message', (msg) => { // console.log('inside child class'); excelParserTool(msg).then((result)=>{ process.stdout.write(JSON.stringify(resu

我正在尝试将一个大数组从子进程传输到父进程。一个数组中的元素数约为
200000*100*2
。我可能需要在未来传递更大的价值

下面是将数组传递给父进程的子进程

process.on('message', (msg) => {
    // console.log('inside child class');
    excelParserTool(msg).then((result)=>{
        process.stdout.write(JSON.stringify(result));
        process.exit();
    })
});
result
是它发送给父进程的大数组

process.on('message', (msg) => {
    // console.log('inside child class');
    excelParserTool(msg).then((result)=>{
        process.stdout.write(JSON.stringify(result));
        process.exit();
    })
});
下面是接收阵列并对其进行处理的父进程

excelParserChild.stdout.on('data', (data) => {
    excelBuffer += data
});

excelParserChild.stderr.on('data', (error) => {
    console.log('stderr');
    console.log(error);
    errorFinal += error;
    console.log(errorFinal)
});
excelParserChild.on('close', (exitCode) => {
   console.log(excelBuffer);

})
这导致

(node:1468) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): RangeError: Invalid string length
(node:1468) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code

我曾尝试使用
process.send(result)
尝试发送数组,但它也会导致相同的错误。现在我想知道这是否是将大数据从子进程传递到父进程的正确方法。将大变量从子进程传递到父进程的最佳方法是什么?如果我做得对,我如何解决无效字符串长度问题?谢谢。

无效字符串长度可能重复,这意味着您创建的字符串太大,系统无法处理。您真的需要一次处理所有这些内容吗?或者您可以将其拆分,在不同的时间检索/使用较小的部分吗?可能会重复无效的字符串长度,这意味着您创建的字符串太大,系统无法处理。你真的需要一次处理所有这些吗,或者你能把它分解,在不同的时间检索/使用更小的部件吗?