Я использую модуль csv-parser npm для чтения файла csv, его обработки, а затем создания статистической модели на основе данных. Проблема, с которой я столкнулся, заключается в том, что другой файл, который использует это, не ждет, пока модель завершит sh, прежде чем двигаться дальше, поэтому он пытается использовать значения / методы, которые еще не определены. Основываясь на других сообщениях, это то, что у меня есть:
this.read = async function(){
return new Promise((resolve, reject) => {
console.log("in mv read");
fs.createReadStream("./assets/stats-csv.csv")
.pipe(csv({
mapValues: ({ header, index, value }) => this.toNumber(header, value)
}))
.on('data', (data) => this.process(data))
.on('error', err => {
reject(err);
})
.on('end', () => {
this.model();
console.log('finished mv model');
resolve(true);
});
})
}
И затем другой файл использует метод следующим образом:
this.train_mv = async function(){
console.log("in train mv wrapper")
const success = await this.mvReg.read();
return success;
//console.log(success);
}
Я добавил бит «успех» только для посмотрите, поможет ли возврат и использование значения из обещания, но это не так. Функция просто переходит и даже не go до строки «return success». Мне что-то не хватает в async / await? Разве функция train_mv не должна останавливаться и ждать, пока обещание не разрешится? Буду признателен за любую помощь. Спасибо!