【发布时间】:2014-11-16 20:09:50
【问题描述】:
Hacker News 最近发布了一个API,我用它来显示 Hacker News 当前排名前十的项目。我遇到了一些问题。
当我运行下面的代码时,首页项目的顺序不准确,从首页的第二个跳转到第四个,到第一个,到第五个,到第三个等等。再次运行代码会导致再次略有不同的顺序。
$.getJSON('https://hacker-news.firebaseio.com/v0/topstories.json', function(json) {
var convoText = '<ol>';
for (var i = 0; i < 10; i++) {
(function(i) {
$.getJSON('https://hacker-news.firebaseio.com/v0/item/' + json[i] + '.json', function(json2) {
convoText += '<li><a href="' + json2.url + '">' + json2.title + '</a></li>';
if (i === 9) {
convoText += '</ol>';
addConvo(convoText);
}
});
})(i);
}
});
我知道这是 Javascript 的异步特性造成的。我该如何解决?
【问题讨论】:
标签: javascript jquery ajax asynchronous