One method to do this would be to nest the multiple readFiles and then have the writeFile nested inside. Something like this:
var fs = require("fs");
fs.readFile('file1.txt',function(err1, data1){
fs.readFile('file2.txt',function(err2, data2){
fs.readFile('file3.txt',function(err3, data3){
if(err1 || err2 || err3){
throw new Error();
}
let data = data1+data2+data3;
fs.writeFile('file4.txt', data);
});
});
});
The other method to achieve this would be to use the Bluebird or a similar promise library.
var fs = require('fs');
var Promise = require('bluebird');
var readFile = Promise.promisify(fs.readFile);
var writeFile = Promise.promisify(fs.writeFile);
var promiseArray = [readFile('file1.txt'), readFile('file2.txt'), readFile('file3.txt')];
Promise.all(promiseArray).then((dataArray)=>{
var data = '';
for(var i=0;i<dataArray.length;i++){
data += dataArray[i];
}
return writeFile('file4.txt', data);
});
I would suggest to use the second method. Hope this helps :)