在typescript / javascript中我试图从数据对象中获取“statute”:
{_ id:“31ad2”,x:21.29,y:-157.81,law:“290-11”,....}
所以我将data.law分配给变量。但是,我得到的类型错误无法读取未定义的属性“法则”?
如果我在第11行控制日志'data.law'或在第18行控制结果[0],我得到正确的值......
sectionsSuccess(res: Response) {
this.allSections = [];
this.sections = [];
this.loadingSections = false;
try {
let jsonRes = res.json();
this.jsonResLength = jsonRes.length;
for (var a = 0; a < this.jsonResLength; a++) {
let js = jsonRes[a];
js.bookmarked = this.server.isInBookmark(js);
this.allSections.push(js);
if (a < 15) {
this.sections[a] = this.allSections[a];
}
}
} catch (e) {
alert("Exception: " + e.message);
}
for (var i = 0; i < this.allSections.length; i++) {
this.allSections[i] = this.convertLocationDataToStatutes(this.allSections[i]);
}
// complete code added above
for (var i = 0; i < this.sections.length; i++) {
this.sections[i] = this.convertLocationDataToStatutes(this.sections[i]);
}
}
convertLocationDataToStatutes(data: any): any {
var self = this;
var chapterandsection = data.law; //line 11
var values = chapterandsection.split('-');
var chapter = values[0];
var section = values[1];
(self.server).getSection(chapter, section)
.map(response => response.json()).subscribe(result => {
return result[0]; // line 18
});
}
答案 0 :(得分:1)
您的convertLocationDataToStatutes
永远不会返回任何内容,但您正在使用其返回值。调用没有返回值的函数的结果是undefined
。因此,循环使用一堆this.sections
填充undefined
。这意味着下一个时间sectionsSuccess
被调用,它将在undefined
中看到this.sections[x]
,并且访问data.law
将导致错误。因此,问题将显示第二时间sectionsSuccess
被调用;您在data.law
的日志记录中看到的值可能是第一次调用它。
return
中唯一的convertLocationDataToStatutes
是subscribe
回调中的convertLocationDataToStatutes
。大概你想从ffmpeg -i input.mp4 -filter:a "volume=1.5" output.mp4
本身返回一些东西。