Javascript 如何在角坐标系中创建动态间隔
list.component.htmlJavascript 如何在角坐标系中创建动态间隔,javascript,angular,Javascript,Angular,list.component.html <nz-select nzShowSearch nzPlaceHolder="Select a interval" [(ngModel)]="selectIntervalValueStr" (ngModelChange)="onSelectChange()" style="width:100%"> <nz-option nzLabel="5 minutes" nzValue="1000"></nz-opti
<nz-select nzShowSearch nzPlaceHolder="Select a interval" [(ngModel)]="selectIntervalValueStr" (ngModelChange)="onSelectChange()" style="width:100%">
<nz-option nzLabel="5 minutes" nzValue="1000"></nz-option>
<nz-option nzLabel="10 minutes" nzValue="5000"></nz-option>
<nz-option nzLabel="15 minutes" nzValue="10000"></nz-option>
</nz-select>
如何创建动态间隔。
使用“选择”选项,其中有一个项目,其5分钟相当于300000
,10分钟相当于600000
,15分钟相当于900000
在我这方面,我试图控制这一点。在chartIntervalFunction中选择IntervalValue
,是的,它会得到值,但当我在设置间隔中应用它时,它不起作用。它自动运行无停止运行取自
setInterval()方法以指定的间隔(毫秒)调用函数或计算表达式
setInterval()方法将继续调用该函数,直到调用clearInterval()或关闭窗口为止
实际上,您正在创建一个无限循环,该循环以特定的时间间隔调用。您不能仅使用属性动态更改间隔计数。您必须清除先前创建的无限循环,并创建一个新的setInterval()
此外,我将避免使用setInterval()
作为绑定事件函数的名称。原因它与窗口的设置间隔(函数)
不明确。类似于onSelectChange()
的内容有助于提高可读性
注入环;
选择intervalvaluestr;
选择InterValve值:数字=300000//如果在此处设置,则默认为300_000
onSelectChange(){
this.selectInterValveValue=+this.selectInterValveValueStr;//转换为带+符号的数字,或者也可以使用parseInt(this.selectInterValveValueStr)。
}
chartIntervalFunction(){
if(this.infLoop!=null | | this.infLoop!=未定义){
clearInterval(this.infLoop);
}
this.infLoop=setInterval(()=>{
这个是.getRoomList();
console.log(this.selectInterValve值);
},此选项。选择InterValve值);
}
您还需要更改html:
取自
setInterval()方法以指定的间隔(毫秒)调用函数或计算表达式
setInterval()方法将继续调用该函数,直到调用clearInterval()或关闭窗口为止
实际上,您正在创建一个无限循环,该循环以特定的时间间隔调用。您不能仅使用属性动态更改间隔计数。您必须清除先前创建的无限循环,并创建一个新的setInterval()
此外,我将避免使用setInterval()
作为绑定事件函数的名称。原因它与窗口的设置间隔(函数)
不明确。类似于onSelectChange()
的内容有助于提高可读性
注入环;
选择intervalvaluestr;
选择InterValve值:数字=300000//如果在此处设置,则默认为300_000
onSelectChange(){
this.selectInterValveValue=+this.selectInterValveValueStr;//转换为带+符号的数字,或者也可以使用parseInt(this.selectInterValveValueStr)。
}
chartIntervalFunction(){
if(this.infLoop!=null | | this.infLoop!=未定义){
clearInterval(this.infLoop);
}
this.infLoop=setInterval(()=>{
这个是.getRoomList();
console.log(this.selectInterValve值);
},此选项。选择InterValve值);
}
您还需要更改html:
尝试从setInterval()
方法返回值,而不是初始化<代码>此
在这种情况下的行为可能会有所不同method@JaydipJadhavwdym sir?您需要保存的返回值,并使用clearInterval
停止旧计时器。@fredriklet refreshInterval=setInterval(()=>{this.getRoomList();},600000);清除间隔(刷新间隔)
?@fredrik是否正确??尝试从setInterval()
方法返回值,而不是初始化<代码>此在这种情况下的行为可能会有所不同method@JaydipJadhavwdym sir?您需要保存的返回值,并使用clearInterval
停止旧计时器。@fredriklet refreshInterval=setInterval(()=>{this.getRoomList();},600000);清除间隔(刷新间隔)代码>?@fredrik是否正确?类型“string”与类型“number”Ah不可比较,因为您在开关盒中使用相同的class属性,并与
绑定。在第二次读取时,您的switch语句实际上也不是必需的,因为它只是将字符串转换为数字,您可以使用javascript/typescript轻松完成。错误TypeError:_co.setInterval不是一个函数您没有将(ngModelChange)=“setInterval()”
更改为(ngModelChange)=“onSelectChange()”
因为您将nzValue
从300000更改为1000?1000毫秒等于1秒。当然,循环将每1s执行一次。类型“string”与类型“number”Ah不可比较,因为您在开关的大小写中使用了相同的class属性,并与
绑定。在第二次读取时,您的switch语句实际上也不是必需的,因为它只是将字符串转换为数字,您可以使用javascript/typescript轻松完成。错误TypeError:_co.setInterval不是一个函数您没有将(ngModelChange)=“setInterval()”
更改为(ngModelChange)=“onSelectChange()”
因为您将nzValue
从300000更改为1000?1000毫秒等于1秒。当然,循环将每1s执行一次。
infLoop: any;
selectIntervalValueStr: any;
selectIntervalValue: number = 300000;
onSelectChange() {
this.selectIntervalValue = +this.selectIntervalValueStr;
}
chartIntervalFunction() {
if (this.infLoop != null || this.infLoop != undefined) {
clearInterval(this.infLoop);
}
this.infLoop = setInterval(() => {
this.getRoomList();
console.log(this.selectIntervalValue);
}, this.selectIntervalValue);
}