首页 > 解决方案 > 初始化一个数组后,它告诉我他在 promise 函数的“then”中是未定义的

问题描述

我的代码:

打字稿:

console.log(this.arr);
myService.getData(). then(data =>{
      console.log(this.arr);
      this.arr[0].myData = data;
 });

chrome 1.arr.length=1 中的日志 - 数组已初始化 2. undefined

标签: angulartypescriptangular6

解决方案


那是因为“this”在两个范围内都是不同的。

console.log(this.arr);
myService.getData(). then(data =>{
      console.log(this.arr);
      this.arr[0].myData = data;
 }.bind(this));

或者,甚至更好:

var self = this;
console.log(self.arr);
myService.getData(). then(data =>{
      console.log(self.arr);
      self.arr[0].myData = data;
 });

推荐阅读