Я пишу следующий код, чтобы прочитать данные из файла и вставить в массив. Но attachments.length сначала печатает 0, а затем данные загружаются и печатаются.
const fs=require('fs');
const util=require('util');
const files=['t1.csv','t2.csv','t3.csv'];
async getdata(){
const read=util.promisify(fs.readFile);
let attachments = [];
async function run(file){
let data=await read(file);
attachments.push(data);
}
for(let file of files){
await run(file);
}
console.log(attachments.length);//should print 3
}
Как сначала загрузить данные, а затем правильно нажать.
Редактировать: измените некоторую часть кода, чтобы использовать await. Но прерывание цикла после первой итерации без каких-либо ошибок также не выводит мою attchments.length.
Edit 2: проблема решена. Вызывающую функцию также нужно ждать. Спасибо всем.