Arrays 将指示器设置为数组中的变量,而不是角度中的变量

Arrays 将指示器设置为数组中的变量,而不是角度中的变量,arrays,angular,typescript,Arrays,Angular,Typescript,我的代码有以下部分: private engineSpeed = 0; private gearboxTemp = 0; private engine = { "Temp1" : ["30 °C", "30 °C", "30 °C"], "Param" : ["17.23 kPa", "1200 m³/min", "0.7 kg/m³&q

我的代码有以下部分:

private engineSpeed = 0;
private gearboxTemp = 0; 
private engine = {
  "Temp1" : ["30 °C", "30 °C", "30 °C"],
  "Param" : ["17.23 kPa", "1200 m³/min", "0.7 kg/m³", "55 °C"],
  "Speed" : [this.engineSpeed + " rpm"]
}


ngOnInit(): void {
  this.dataWatchdog = setInterval(async () => {  
    this.engineSpeed = await this.getEngineSpeed()
  }, 5000)
}


public button()
{
    console.log("Speed ", this.engine["Speed"])
    console.log("Engine speed", this.engineSpeed )
}
我正在更新dataWatchdog中每个5s中的
这个.engineSpeed
变量。但是仍然在engine array
中,此.engineSpeed
值未更新,并且在
console.log
中,我获得了
0


是否可以在数组中设置一个指示符来指示此.engineSpeed变量,而不仅仅是一个变量并保持更新?提前感谢为
this.engineSpeed
指定一个新值不会隐式更新
this.engine.Speed[0]
的值,因为
this.engineSpeed+“rpm”
只解释一次,并且包含
this.engineSpeed
初始值的副本。您可以在“看门狗”中强制更新
this.engine.Speed[0]
,创建
getSpeed
方法或执行类似操作:

private engine = {
  // ...
  "Speed" : () => [this.engineSpeed + " rpm"] // Speed is now a function
}

public button()
{
    console.log("Speed ", this.engine["Speed"]())
    console.log("Engine speed", this.engineSpeed )
}

1) 您的异步/等待似乎不相关。
getEngineSpeed()
的内容是什么?2) 如果您更新
this.engineSpeed
,您必须手动更新
this.engine.Speed[0]
,您可以在
设置engineSpeed(newValue)
方法中进行更新,以使其保持最新1)getEngineSpeed()只是从数据库中读取值,在这里不相关,我只是想显示该值是不断更新的。2) 这是令人伤心的,因为我想添加许多这样的变量,并可能修改它们的位置。engine.Speed[0]并不总是起作用,因为有时它可能像{“Speed”:[This.engineSpeed+“rpm”}或“Speed”:[This.engineSpeed1+“rpm”,This.engineSpeed2+“rpm”],然后我不想把这个放在这里。engine.Speed[0]还有这个.engine.Speed[1],所以@kruschid解决方案似乎是最好的方法;)伟大的谢谢,这正如我预期的那样起作用:)