【发布时间】:2015-01-19 07:58:37
【问题描述】:
我有一些代码可以执行以下操作.... 第一个 get 调用基本上只是给出数据中的帖子列表。然后对于每个帖子,我想加载第二个 get 调用给出的许多回复。问题是,它实际上是通过循环,然后只加载最后一个回复。
http.get("../api/sortpost/trending").success(function (data){
scope.posts = data;
for(var i = 0; i < scope.posts.length; i++){
post=scope.posts[i];
console.log(i); //prints 1 to i as expected
http.get("/api/postreply/"+post.id).success(function (data){
post.replies = data;
console.log(i); //prints i only i number of times
});
}
});
有人知道怎么解决吗?我猜我循环太快了,get 请求没有足够的时间来处理。因此,我的 post.replies 和 i 发生了一些有趣的事情,并且在请求实际完成之前帖子正在更改。
【问题讨论】:
标签: javascript json angularjs asynchronous