Мне нужно вызвать функцию pushBulkData
внутри события чтения потока.
Я пробовал с
this.pushBulkData(row, importData);
Я знаю, что это не сработает, потому что у этого здесь есть отдельная область
и
taskController.pushBulkData(row, importData);
, и это невозможно сделать постоянно.
Будет ли bind
работать?
class taskController{
async import(path){
var dest = fs.createWriteStream(path);
src.pipe(dest);
let importData = [];
src.on('end', function() {
fs.createReadStream(path)
.pipe(require('csv-parser')(['name', 'status']))
.on('data', function (row) {
//this makes error
this.pushBulkData(row, importData);
})
.on('end', function () {
// We are done
})
});
src.on('error', function(err) { console.log('error on upload file'); });
}
pushBulkData(row, importData){
console.log('row', row);
importData.push(
{
name : row.name,
status : row.status}
);
}
}
}