Javascript,运行函数0.5秒,然后停止(循环)
我正在运行一个安装了raspberry pi gpio模块的节点服务器。我试图让ESC启动并运行0.5秒,然后我需要它停止0.5秒,然后在循环中再次启动。但是,如果“启动”=0(按钮关闭),我需要回路完全停止,并将伺服脉冲宽度设置为1000(电机停止) 这是我的代码,可以用。但这并没有停止Javascript,运行函数0.5秒,然后停止(循环),javascript,node.js,Javascript,Node.js,我正在运行一个安装了raspberry pi gpio模块的节点服务器。我试图让ESC启动并运行0.5秒,然后我需要它停止0.5秒,然后在循环中再次启动。但是,如果“启动”=0(按钮关闭),我需要回路完全停止,并将伺服脉冲宽度设置为1000(电机停止) 这是我的代码,可以用。但这并没有停止 var start=new blynk.VirtualPin(4); start.on('write',函数t(start){ 如果(开始==1){ setInterval(函数(){ setInterval
var start=new blynk.VirtualPin(4);
start.on('write',函数t(start){
如果(开始==1){
setInterval(函数(){
setInterval(函数(){
电机伺服写入(1920);
}, 500);
setInterval(函数(){
电机伺服写入(1000);
}, 1000);
}, 500);
}否则{
电机伺服写入(1000);
}
电机伺服写入(1000);
});
有人能告诉我哪里出错了吗?将间隔存储在变量中
var myInterval = setInterval(function() { [... your code code] },delay);
那就来阻止它吧
clearInterval(myInterval);
我认为
setInterval
可能是使用错误的东西。setInterval
正在重新出现。如果你真的只想运行一次,等一下,然后运行其他的。尝试使用,它会等待x ms,然后执行某些操作
var id = null;
start.on('write', function t(start) {
if(start == 1){
pulse();
}
else {
clearTimeout(id);
motor.servoWrite(1000);
}
});
function pulse() {
servoOn();
id = setTimeout(function(){
servoOff();
id = setTimeout(function(){
pulse();
}, 1000);
}, 500);
}
function servoOn(){
motor.servoWrite(1920);
}
function servoOff(){
motor.servoWrite(1000);
}
当然,时间以毫秒为单位,函数的第二个参数是
setInterval
。工作得很好,谢谢:)
var id = null;
start.on('write', function t(start) {
if(start == 1){
pulse();
}
else {
clearTimeout(id);
motor.servoWrite(1000);
}
});
function pulse() {
servoOn();
id = setTimeout(function(){
servoOff();
id = setTimeout(function(){
pulse();
}, 1000);
}, 500);
}
function servoOn(){
motor.servoWrite(1920);
}
function servoOff(){
motor.servoWrite(1000);
}