Я столкнулся со странной проблемой, когда новая переменная создается в локальной области, даже если она определена снаружи,
из приведенного ниже кода
после того, как я вызываю buildMeta () и проверяю содержимое «данных», оно всегда пустое
подразумевая, что он вообще не изменяется, даже если я специально нацелил «that.data», где он ссылается на объект класса.
Буду признателен, если кто-нибудь укажет, что я делаю неправильно.
class meta {
constructor(files) {
if(!files) throw Error("files not specified");
this.data = {};
this.ls = files;
}
buildMeta() {
var that = this;
for(let i = 0; i < that.ls.length; i++) {
mm.parseFile(that.ls[i]).then(x => {
var info = x.common;
that.data[info.artist] = "test";
}).catch((x) => {
console.log(x);
});
}
}
}
const mm = new meta(indexer); // indexer is an array of file paths
mm.buildMeta();
console.log(mm.data);