首页 文章

Waitfor承诺完成for循环(Typescript)

提问于
浏览
0

我的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 回答

  • 4

    this.item 访问 function (result){...} 的上下文,我想你想要外部上下文 .

    请改用箭头功能,因此:

    Promise.all(promises)
    .then((result) => {
    ...
    });
    

相关问题