【发布时间】:2014-08-15 02:17:05
【问题描述】:
我阅读了很多关于延迟的答案,但无法准确找到我想要的。
关闭的代码是http://jsfiddle.net/UZzeC/
我的代码的不同之处在于我想在 when 中调用“process”函数。语句 N 次。
//Dynamically generated JSON list
var json_list = [
{"id":"div1","name":"Google.com"},
{"id":"div2","name":"eBay.com"}
{"id":"div3","name":"Yahoo.com"},
{"id":"div4","name":"Facebook.com"}
];
$.when(
for (var i in json_list) {
process(json_list[i].id, json_list[i].name),
}
).done(function() {
$('#global').text("OK"); }
) .fail(function() {
$('#global').text("FAIL");
});
最终状态将是异步连接到多个 Web 服务的代码,并在每个服务返回数据时返回其进度
我可以像这样嵌入这个循环吗?我在什么时候看到了“应用”的一些用法,但不确定它对我有什么用。
【问题讨论】:
-
var i in json_list也会遍历原型的属性。 -
使用 json_list.hasOwnProperty(i) 阻止原型属性上的调用进程
-
@agconti 它只会通过 enumerable 属性。在现代浏览器上,不会有任何不是编码员自己放在那里的。
-
无论如何,
json_list实际上是一个数组而不是一个对象,所以代码根本不应该使用for .. in! -
感谢大家的贡献。为了给您更好的视觉效果,我创建了一个不太完美的 JSFiddle 示例:jsfiddle.net/b23aoe52/1
标签: javascript jquery loops promise deferred