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解决方案似乎是最好的方法;)伟大的谢谢,这正如我预期的那样起作用:)