我的angular2项目中存在for循环和promise的问题 . 我需要触发几个返回承诺的方法 . 在承诺之后,我想通过使用Promise.all(变量)来填充类中的数组.then(funtion(result);当我想在Promise中访问数组时 . 所有控制台都提出错误
core.es5.js:1084 ERROR错误:未捕获(在承诺中):TypeError:无法设置未定义的属性'item'
...
public item;
allItems = [];
public method() {
var promises = [];
this.dbService.getItem('myKey', 'table')
.then((data) => {
this.myArrayNumber = data;
for (let i = 0; i < this.myArrayNumber.length; i++) {
promises.push(this.dbService.getItem(this.epodLiefernr[i], 'lieferungen'));
}
Promise.all(promises)
.then(function (result) {
for (let i = 0; i < result.length; i++) {
this.item = result[i];
}
});
...
为什么,我当时无法访问this.item?有没有人能给我一个想法,我将如何解决我的问题
1 回答
this.item
访问function (result){...}
的上下文,我想你想要外部上下文 .请改用箭头功能,因此: