我需要以并行方式组合两个流。我想使用这些流将一些生成的信息写入两个文件。 我已经完成了第一个流(stream1)。它看起来像这样:
'use strict';
var fs = require('fs');
var stream1 = fs.createWriteStream("random1.txt");
let ln = 1000000;
let j = 0;
function generateRandom()
{
var reslt = true;
do {
ln--;
j++;
if (ln === 0) {
stream1.write(...write randon number...);
stream1.end();
} else {
reslt = stream1.write(...write randon number...);
}
} while (ln > 0 && reslt);
if (ln > 0) {
stream1.once('drain', generateRandom);
}
}
stream1.on('error', (err) => {throw err;});
var stream1Promise = new Promise((resolve, reject)=>{
try {
generateRandom();
});
} catch (error) {
reject(error);
}
});
stream1Promise
.then(function(callback) {
if (typeof callback === 'function') {
callback();
}
}, function(error) {
console.log("Error occurred: ", error);
stream1.end();
});
但我不明白如何添加另一个流stream2,以便将不同的随机信息写入另一个文件。 我试图在stream1.write的回调中使用process.nextTick来切换我的流,但我得到的所有时间“致命错误:CALL_AND_RETRY_LAST分配失败 - 处理内存不足”错误。 谁能帮助我? 感谢。