আমি এই প্রসঙ্গে আমার সমস্যার কিছুটা আলাদা সমাধান পেয়েছি। ভাগ করে নেওয়ার মতো ভেবেছি।
উদাহরণস্বরূপ বেশিরভাগ readStreamsফাইল থেকে তৈরি করুন। তবে আমার ক্ষেত্রে একটি বার্তা পুল থেকে আসা স্ট্রিং readStreamথেকে তৈরি করতে হবে JSON।
var jsonStream = through2.obj(function(chunk, encoding, callback) {
this.push(JSON.stringify(chunk, null, 4) + '\n');
callback();
});
// message.value --> value/text to write in write.txt
jsonStream.write(JSON.parse(message.value));
var writeStream = sftp.createWriteStream("/path/to/write/write.txt");
//"close" event didn't work for me!
writeStream.on( 'close', function () {
console.log( "- done!" );
sftp.end();
}
);
//"finish" event didn't work for me either!
writeStream.on( 'close', function () {
console.log( "- done!"
sftp.end();
}
);
// finally this worked for me!
jsonStream.on('data', function(data) {
var toString = Object.prototype.toString.call(data);
console.log('type of data:', toString);
console.log( "- file transferred" );
});
jsonStream.pipe( writeStream );
var r = request(...).on("end",function(){/* CALLBACK */}).pipe(...);