我正在循环中执行 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);
}
}
最佳答案
测试循环中的状态。由于您只想显示正在进行的第一个端点,因此您应该在找到它时跳出循环。
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;
}
}
关于javascript - api 回调的输出显示第一个对象的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29572889/