我正在循环中执行api回调以获取值的最新状态.. api调用和循环正在工作,但它没有显示返回的第一个对象的数据..而是它向我显示最后一个对象的数据。循环的原因是因为可能有多个对象返回但我希望输出按顺序从对象0到对象1依次经过它们等等。
这是来自firebug的屏幕截图,显示了两个具有相应数据点的对象。如您所见,首先显示对象0,然后显示对象1.
这是我在页面上输出数据的代码。此代码位于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);
}
}
答案 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;
}
}