【发布时间】:2013-07-24 03:17:31
【问题描述】:
我有一个 each 循环来提取四方信息。它看起来类似于以下内容:
$.getJSON('https://api.foursquare.com/v2/venues/search?search_string_here',
function(data) {
$.each(data.response.venues, function(i,venues){
var content = foursquare stuff;
$(content).appendTo("#fourSquare");
});
});
我需要在每个循环完成后启动一个函数。如果放置在每个循环之后,这将起作用:
$( "#fourSquare" ).promise().done(function() {
//do stuff
});
我不熟悉promise - 奇怪的是它适用于任何选择器。两个问题:
1) 这是进行每个回调的最佳方式吗? 2)这里正确的选择器是什么? each 没有迭代已经存在的元素,所以我不确定要“承诺”什么
【问题讨论】:
-
当在一个元素上使用时,.promise 会获得一个 promise 对象,该对象引用一个延迟对象,该对象在所有排队的方法完成时解析,例如动画。它不跟踪 ajax 请求主要是因为 ajax 请求没有直接链接到元素。