Angular 初始化为oninit的未定义数组

Angular 初始化为oninit的未定义数组,angular,Angular,我有一段话: usersTempList=[]; ngOnInit() { this.obj = {user: JSON.parse(localStorage.userDetails),room:"Sala" + this.projectID, projectID: this.projectID}; this.loggedUser = JSON.parse(localStorage.userDetails).UserID; this.roomList.push(this.obj.r

我有一段话:

usersTempList=[];

ngOnInit() {
  this.obj = {user: JSON.parse(localStorage.userDetails),room:"Sala" + this.projectID, projectID: this.projectID};
  this.loggedUser = JSON.parse(localStorage.userDetails).UserID;
  this.roomList.push(this.obj.room);
  this.usersTempList=[];
  console.log("Initialized array")
  this.join(this.obj);
  ...
}

join(obj: any){
    this.socket.emit("join",obj,this.getOnline);
}

getOnline(err,msg){
  console.log(this.usersTempList);
  console.log("Printed array");
  this.usersTempList = JSON.parse(JSON.stringify(msg));
  console.log("qwerty",this.usersTempList);
}
在浏览器上打开此组件时,
*ngFor
都不起作用(它不打印任何内容),并且
getOnline
第一行的
控制台.log
始终打印
未定义的
。此外,即使在后续行中更新了变量,
*ngFor
仍然不会更新接口

有人对此有任何线索吗


谢谢

问题解决了,因为我无法访问作用域内的数组,所以我使用了一个箭头函数,它起了作用,usersTempList不再是未定义的

join(obj: any){
  this.socket.emit("join",obj, (err,msg) => {      
        this.usersTempList=JSON.parse(JSON.stringify(msg))
    });
}

谢谢大家!

请分享您的HTML代码,首先,getOnline是一个不会返回任何内容的函数。您是否可以进一步指定希望看到的输出?