有没有办法使用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);
答案 0 :(得分:1)
如果你想让他们排队,没有Promises / Deferreds,你可以这样做:
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);
}
干杯