Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/471.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在角坐标系中创建动态间隔_Javascript_Angular - Fatal编程技术网

Javascript 如何在角坐标系中创建动态间隔

Javascript 如何在角坐标系中创建动态间隔,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

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-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
停止旧计时器。@fredrik
let refreshInterval=setInterval(()=>{this.getRoomList();},600000);清除间隔(刷新间隔)
?@fredrik是否正确??尝试从
setInterval()
方法返回值,而不是初始化<代码>此在这种情况下的行为可能会有所不同method@JaydipJadhavwdym sir?您需要保存的返回值,并使用
clearInterval
停止旧计时器。@fredrik
let 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);

  }