繁体   English   中英

将setInterval与可能需要更长间隔时间的异步函数一起使用

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM