输出api回调以显示第一个对象的数据

时间:2015-04-11 01:09:52

标签: javascript jquery api

我正在循环中执行api回调以获取值的最新状态.. api调用和循环正在工作,但它没有显示返回的第一个对象的数据..而是它向我显示最后一个对象的数据。循环的原因是因为可能有多个对象返回但我希望输出按顺序从对象0到对象1依次经过它们等等。

这是来自firebug的屏幕截图,显示了两个具有相应数据点的对象。如您所见,首先显示对象0,然后显示对象1.

enter image description here

这是我在页面上输出数据的代码。此代码位于if语句中,其中status =" RESULT" - 您无法通过以下代码判断,但这两个对象都符合该标准

for (var i = 0; i < response.endpoints.length; i++) {
  var endpoint = response.endpoints[i];
  //console.log(endpoint);
  $pending0.html("<br><b>Server Name: </b>" + endpoint.serverName + "<br><b>Status: </b>" + endpoint.statusMessage + "<br><b>Progress: </b>" + endpoint.statusDetailsMessage);

上述代码的问题在于输出的顺序。它显示第二个对象的数据,我需要它来为我提供第一个对象的输出。

- 更新 -

似乎按照Barmer的建议在循环中添加IF

    for (var i = 0; i < response.endpoints.length; i++) {
  var endpoint = response.endpoints[i];
  if (endpoint.statusMessage == "In progress") {
  //console.log(endpoint);
  $pending0.html("<br><b>Server Name: </b>" + endpoint.serverName + "<br><b>Status: </b>" + endpoint.statusMessage + "<br><b>Progress: </b>" + endpoint.statusDetailsMessage);
 }
}

1 个答案:

答案 0 :(得分:1)

测试循环中的状态。由于您只想显示正在进行的第一个端点,因此您应该在找到它时跳出循环。

for (var i = 0; i < response.endpoints.length; i++) {
    var endpoint = response.endpoints[i];
    if (endpoint.statusMessage == "In progress") {
    //console.log(endpoint);
        $pending0.html("<br><b>Server Name: </b>" + endpoint.serverName + "<br><b>Status: </b>" + endpoint.statusMessage + "<br><b>Progress: </b>" + endpoint.statusDetailsMessage);
        break;
    }
}