如何处理jQueryDeferreds数组?我有一个需要按一定顺序加载数据的应用程序:根URL,然后是模式,然后使用模式和各种数据对象的URL初始化应用程序。当用户导航应用程序时,将加载数据对象,并根据架构验证数据对象并显示数据对象。当用户对数据进行遍历时,模式提供了第一次验证。初始化有问题。我使用Ajax调用获取根对象$.When(),然后创建一个承诺数组,每个模式对象一个。这很管用。我看到控制台里的东西了。然后,我看到了对所有模式的提取,因此每个$.ajax()调用都能工作。get chschema()确实会返回一系列承诺。但是,FinalWHERE()子句从未触发,而“已完成”一词从未出现在控制台上。jQuery-1.5的源代码似乎意味着“NULL”是可以接受的对象,可以传递到$.Wh.Apply(),因为如果没有传入对象,那么当()构建一个内部的Deferred()对象来管理列表时,它是可以接受的。这使用了Futures.js。如果不是这样,应该如何管理jQueryDeferreds数组? var fetch_schemas, fetch_root;
fetch_schemas = function(schema_urls) {
var fetch_one = function(url) {
return $.ajax({
url: url,
data: {},
contentType: "application/json; charset=utf-8",
dataType: "json"
});
};
return $.map(schema_urls, fetch_one);
};
fetch_root = function() {
return $.ajax({
url: BASE_URL,
data: {},
contentType: "application/json; charset=utf-8",
dataType: "json"
});
};
$.when(fetch_root()).then(function(data) {
var promises = fetch_schemas(data.schema_urls);
$.when.apply(null, promises).then(function(schemas) {
console.log("DONE", this, schemas);
});
});
3 回答
慕森卡
TA贡献1806条经验 获得超8个赞
$.when.apply($, promises).then(function(schemas) { console.log("DONE", this, schemas);}, function(e) { console.log("My ajax failed");});
$.when.apply($, promises).done(function() { ... }).fail(function() { ... });`
$
null
this
$.when
jQuery
null
.
$.when
- 3 回答
- 0 关注
- 401 浏览
相关问题推荐
添加回答
举报
0/150
提交
取消