【发布时间】:2018-10-30 13:16:50
【问题描述】:
我遇到了一个奇怪的问题,即在本地范围内创建了一个新变量,即使它是在外部定义的,
从下面的代码
在我调用 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);
【问题讨论】:
标签: javascript ecmascript-6 scope es6-promise