[英]Using setInterval with asynch functions that could take longer than the interval time
有没有一种方法可以使用setInterval使您的异步函数保持某种顺序? 例如,如果您正在进行某种IO连接,并且所花费的时间比您设置的间隔时间长,那么您会遇到一些麻烦。 我可以将间隔时间增加到希望可以覆盖的时间,但是不能确定是否足够有效。
代码如下:
var sqlID = setInterval(function(){
console.log('Attempting to reconnect to sql...');
dbHandler.connectSQL(sql, connStr, function(sqlconnect){
conn = sqlconnect;
if (conn != false){
clearInterval(sqlID);
}
});
}, 10000);
如果您希望他们排队,而没有承诺/延期,则可以执行以下操作:
function tryToConnectIn10Seconds(){
setTimeout(function(){
console.log('Attempting to reconnect to sql...');
dbHandler.connectSQL(sql, connStr, function(sqlconnect){
conn = sqlconnect;
if (conn != false){
//Done. Do something with conn
}else{
tryToConnectIn10Seconds();
}
});
}, 10000);
}
干杯
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.