Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.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 如何让代码在JS/JQUery中执行循环的下一次迭代之前等待x秒?_Javascript_Jquery - Fatal编程技术网

Javascript 如何让代码在JS/JQUery中执行循环的下一次迭代之前等待x秒?

Javascript 如何让代码在JS/JQUery中执行循环的下一次迭代之前等待x秒?,javascript,jquery,Javascript,Jquery,我已经看过了链接 比如: 和其他许多关于堆栈溢出的问题。我也尝试过使用JS setTimeOut函数来实现这一点 我试图在JS中模拟一个数据绑定,它每3秒来自Web服务。每次从WebService收到数据后,都会将该数据追加到div中 但是为了使用JS测试和附加这些数据,我需要一些类似于Sleep()的函数。 setTimeOut是异步工作的,所以循环的下一次迭代开始执行,而不是等待。我们如何在JS/JQuery中实现这一点 请检查下面的代码段: linediagnosticsData=[]

我已经看过了链接 比如:

和其他许多关于堆栈溢出的问题。我也尝试过使用JS setTimeOut函数来实现这一点

我试图在JS中模拟一个数据绑定,它每3秒来自Web服务。每次从WebService收到数据后,都会将该数据追加到div中

但是为了使用JS测试和附加这些数据,我需要一些类似于Sleep()的函数。 setTimeOut是异步工作的,所以循环的下一次迭代开始执行,而不是等待。我们如何在JS/JQuery中实现这一点

请检查下面的代码段:

linediagnosticsData=[];
linediagnosticsData.push({详细信息:“完成-上线日期不可用”,ItemStatus:“勾选”,标题:“检查资产/产品信息”});
linediagnosticsData.push({详细信息:“不可用”,项目状态:“警告”,标题:“行长度摘要-”});
linediagnosticsData.push({详细信息:“订阅者速度测试结果已超过31天”,ItemStatus:“警告”,Title:“行摘要”});
linediagnosticsData.push({详细信息:'Found(MPF客户)'),ItemStatus:'Tick',Title:'Checking for User Credentials'});
linediagnosticsData.push({详细信息:“未识别任何相关事件”,ItemStatus:“勾选”,标题:“检查相关事件-”});
linediagnosticsData.push({详细信息:“客户已订阅SMS更新”。,ItemStatus:“勾选”,标题:“获取事件订阅”});
linediagnosticsData.push({详细信息:'订阅服务器同步0天0小时0分钟0秒',ItemStatus:'勾选',标题:'检查同步');
linediagnosticsData.push({详细信息:向下(最大)-10928 kb/s向上(最大)-992 kb/s',项目状态:警告,标题:检查资产/产品信息');
linediagnosticsData.push({详细信息:“稳定行”,项目状态:“勾选”,标题:“检查行稳定性”});
linediagnosticsData.push({详细信息:“订户已成功通过身份验证”,ItemStatus:“勾选”,Title:“检查IP地址…”);
linediagnosticsData.push({详细信息:订阅者已成功连接到网络。无法识别此线路上的任何问题。',ItemStatus:'勾选',Title:'检查IP地址-订阅者已成功获得IP 192.180.222.1'});
对于(变量i=0;i
试试这个:

linediagnosticsData.push({ Details: 'Complete - Go Live Date  Unavailable', ItemStatus: 'Tick', Title: 'Checking for Asset/Product Information' });
linediagnosticsData.push({ Details: 'Not Available', ItemStatus: 'Warning', Title: 'Line Length Summary - ' });
linediagnosticsData.push({ Details: 'Subscribers speed test results are over 31 days old', ItemStatus: 'Warning', Title: 'Line Summary' });
linediagnosticsData.push({ Details: 'Found (MPF Customer)', ItemStatus: 'Tick', Title: 'Checking for User Credentials' });
linediagnosticsData.push({ Details: 'No related incidents identified', ItemStatus: 'Tick', Title: 'Checking for Related Incidents - ' });
linediagnosticsData.push({ Details: 'The customer is subscribed for SMS updates.', ItemStatus: 'Tick', Title: 'Get Incident Subscribed' });
linediagnosticsData.push({ Details: 'Subscriber In Sync for 0 Day(s) 0 Hour(s) 0 Min(s) 0 Sec(s)', ItemStatus: 'Tick', Title: 'Checking for Sync' });
linediagnosticsData.push({ Details: 'Down(max) - 10928 kb/s Up(max) - 992 kb/s', ItemStatus: 'Warning', Title: 'Checking for Asset/Product Information' });
linediagnosticsData.push({ Details: 'Stable line', ItemStatus: 'Tick', Title: 'Checking line stability' });
linediagnosticsData.push({ Details: 'Subscriber has successfully authenticated', ItemStatus: 'Tick', Title: 'Checking for an IP Address...' });
linediagnosticsData.push({ Details: 'Subscriber has successfully connected to the network. Unable to identify any issues on this line.', ItemStatus: 'Tick', Title: 'Checking for an IP Address - Subscriber has been successfully issued an IP of 192.180.222.1' });


var appendDiagnostic = function() {
    debugger;

    // TODO: linediagnosticsData is changed.
    var linedData = linediagnosticsData.pop();

    var imageURL = "/supportalcore/InternalImages/";
    switch ((linedData.ItemStatus).toLowerCase()) {
        case "tick":
            imageURL = imageURL + "tick.gif";
            break;
        case "warning":
            imageURL = imageURL + "warning.gif";
            break;
        case "cross":
            imageURL = imageURL + "cross.gif";
            break;
        default:
            break;

    }
    var html =
      "<div class='nameValueImagerow'>"
      + "<div class='c1'>" + linedData.Title + "</div>"
      + "<div class='c2'>" + linedData.Details + "</div>"
      + "<div class='c3'>" + "<img src=" + imageURL + " alt='i'  />" + "</div>"
      + "<div class='c4'></div>"
      + "</div>";

    lineDiagnosticsBox.append(html);
    //To add wait/ Sleep so that next statement gets executed after some seconds
    if (linediagnosticsData.length > 0) {
      setTimeout(appendDiagnostic, 3000);
    }
}

// Make the first call
appendDiagnostic();
function process(i) {
    if (i < linediagnosticsData.length) {
        debugger;
        var imageURL = "/supportalcore/InternalImages/";
        switch ((linediagnosticsData[i].ItemStatus).toLowerCase()) {
            case "tick":
                imageURL = imageURL + "tick.gif";
                break;
            case "warning":
                imageURL = imageURL + "warning.gif";
                break;
            case "cross":
                imageURL = imageURL + "cross.gif";
                break;
            default:
                break;

        }
        var html =
         "<div class='nameValueImagerow'>"
        + "<div class='c1'>" + linediagnosticsData[i].Title + "</div>"
        + "<div class='c2'>" + linediagnosticsData[i].Details + "</div>"
        + "<div class='c3'>" + "<img src=" + imageURL + " alt='i'  />" +     "</div>"
        + "<div class='c4'></div>"
        + "</div>";

        lineDiagnosticsBox.append(html);

        //To add wait/ Sleep so that next statement gets executed after some seconds
        var str = "process(" + (i+1) + ")";
        window.setTimeout(function(){ eval( str ) }, 1000);
    }
}

process(0);
linediagnosticsData.push({详细信息:'Complete-Go-Live Date Unavailable',ItemStatus:'Tick',Title:'Checking for Asset/Product Information'});
linediagnosticsData.push({详细信息:“不可用”,项目状态:“警告”,标题:“行长度摘要-”});
linediagnosticsData.push({详细信息:“订阅者速度测试结果已超过31天”,ItemStatus:“警告”,Title:“行摘要”});
linediagnosticsData.push({详细信息:'Found(MPF客户)'),ItemStatus:'Tick',Title:'Checking for User Credentials'});
linediagnosticsData.push({详细信息:“未识别任何相关事件”,ItemStatus:“勾选”,标题:“检查相关事件-”});
linediagnosticsData.push({详细信息:“客户已订阅SMS更新”。,ItemStatus:“勾选”,标题:“获取事件订阅”});
linediagnosticsData.push({详细信息:'订阅服务器同步0天0小时0分钟0秒',ItemStatus:'勾选',标题:'检查同步');
linediagnosticsData.push({详细信息:向下(最大)-10928 kb/s向上(最大)-992 kb/s',项目状态:警告,标题:检查资产/产品信息');
linediagnosticsData.push({详细信息:“稳定行”,项目状态:“勾选”,标题:“检查行稳定性”});
linediagnosticsData.push({详细信息:“订户已成功通过身份验证”,ItemStatus:“勾选”,Title:“检查IP地址…”);
linediagnosticsData.push({详细信息:订阅者已成功连接到网络。无法识别此线路上的任何问题。',ItemStatus:'勾选',Title:'检查IP地址-订阅者已成功获得IP 192.180.222.1'});
var appendDiagnostic=函数(){
调试器;
//TODO:linediagnosticsData已更改。
var linedData=linediagnosticsData.pop();
var imageURL=“/supportalcore/InternalImages/”;
开关((linedData.ItemStatus.toLowerCase()){
案例“勾选”:
imageURL=imageURL+“tick.gif”;
打破
案例“警告”:
imageURL=imageURL+“warning.gif”;
打破
“十字架”一案:
imageURL=imageURL+“cross.gif”;
打破
违约:
打破
}
变量html=
""
+“”+linedData.Title+“”
+“”+linedData.Details+“”
+ "" + "" + ""
+ ""
+ "";
lineDiagnosticsBox.append(html);
//添加wait/Sleep以便在几秒钟后执行下一条语句
如果(linediagnosticsData.length>0){
设置超时(appendDiagnostic,3000);
}
}
//打第一个电话
附件诊断();
试试这个:

linediagnosticsData.push({ Details: 'Complete - Go Live Date  Unavailable', ItemStatus: 'Tick', Title: 'Checking for Asset/Product Information' });
linediagnosticsData.push({ Details: 'Not Available', ItemStatus: 'Warning', Title: 'Line Length Summary - ' });
linediagnosticsData.push({ Details: 'Subscribers speed test results are over 31 days old', ItemStatus: 'Warning', Title: 'Line Summary' });
linediagnosticsData.push({ Details: 'Found (MPF Customer)', ItemStatus: 'Tick', Title: 'Checking for User Credentials' });
linediagnosticsData.push({ Details: 'No related incidents identified', ItemStatus: 'Tick', Title: 'Checking for Related Incidents - ' });
linediagnosticsData.push({ Details: 'The customer is subscribed for SMS updates.', ItemStatus: 'Tick', Title: 'Get Incident Subscribed' });
linediagnosticsData.push({ Details: 'Subscriber In Sync for 0 Day(s) 0 Hour(s) 0 Min(s) 0 Sec(s)', ItemStatus: 'Tick', Title: 'Checking for Sync' });
linediagnosticsData.push({ Details: 'Down(max) - 10928 kb/s Up(max) - 992 kb/s', ItemStatus: 'Warning', Title: 'Checking for Asset/Product Information' });
linediagnosticsData.push({ Details: 'Stable line', ItemStatus: 'Tick', Title: 'Checking line stability' });
linediagnosticsData.push({ Details: 'Subscriber has successfully authenticated', ItemStatus: 'Tick', Title: 'Checking for an IP Address...' });
linediagnosticsData.push({ Details: 'Subscriber has successfully connected to the network. Unable to identify any issues on this line.', ItemStatus: 'Tick', Title: 'Checking for an IP Address - Subscriber has been successfully issued an IP of 192.180.222.1' });


var appendDiagnostic = function() {
    debugger;

    // TODO: linediagnosticsData is changed.
    var linedData = linediagnosticsData.pop();

    var imageURL = "/supportalcore/InternalImages/";
    switch ((linedData.ItemStatus).toLowerCase()) {
        case "tick":
            imageURL = imageURL + "tick.gif";
            break;
        case "warning":
            imageURL = imageURL + "warning.gif";
            break;
        case "cross":
            imageURL = imageURL + "cross.gif";
            break;
        default:
            break;

    }
    var html =
      "<div class='nameValueImagerow'>"
      + "<div class='c1'>" + linedData.Title + "</div>"
      + "<div class='c2'>" + linedData.Details + "</div>"
      + "<div class='c3'>" + "<img src=" + imageURL + " alt='i'  />" + "</div>"
      + "<div class='c4'></div>"
      + "</div>";

    lineDiagnosticsBox.append(html);
    //To add wait/ Sleep so that next statement gets executed after some seconds
    if (linediagnosticsData.length > 0) {
      setTimeout(appendDiagnostic, 3000);
    }
}

// Make the first call
appendDiagnostic();
function process(i) {
    if (i < linediagnosticsData.length) {
        debugger;
        var imageURL = "/supportalcore/InternalImages/";
        switch ((linediagnosticsData[i].ItemStatus).toLowerCase()) {
            case "tick":
                imageURL = imageURL + "tick.gif";
                break;
            case "warning":
                imageURL = imageURL + "warning.gif";
                break;
            case "cross":
                imageURL = imageURL + "cross.gif";
                break;
            default:
                break;

        }
        var html =
         "<div class='nameValueImagerow'>"
        + "<div class='c1'>" + linediagnosticsData[i].Title + "</div>"
        + "<div class='c2'>" + linediagnosticsData[i].Details + "</div>"
        + "<div class='c3'>" + "<img src=" + imageURL + " alt='i'  />" +     "</div>"
        + "<div class='c4'></div>"
        + "</div>";

        lineDiagnosticsBox.append(html);

        //To add wait/ Sleep so that next statement gets executed after some seconds
        var str = "process(" + (i+1) + ")";
        window.setTimeout(function(){ eval( str ) }, 1000);
    }
}

process(0);
功能过程(一){
if(i