如何處理jQueryDeferreds數(shù)組?我有一個(gè)需要按一定順序加載數(shù)據(jù)的應(yīng)用程序:根URL,然后是模式,然后使用模式和各種數(shù)據(jù)對(duì)象的URL初始化應(yīng)用程序。當(dāng)用戶(hù)導(dǎo)航應(yīng)用程序時(shí),將加載數(shù)據(jù)對(duì)象,并根據(jù)架構(gòu)驗(yàn)證數(shù)據(jù)對(duì)象并顯示數(shù)據(jù)對(duì)象。當(dāng)用戶(hù)對(duì)數(shù)據(jù)進(jìn)行遍歷時(shí),模式提供了第一次驗(yàn)證。初始化有問(wèn)題。我使用Ajax調(diào)用獲取根對(duì)象$.When(),然后創(chuàng)建一個(gè)承諾數(shù)組,每個(gè)模式對(duì)象一個(gè)。這很管用。我看到控制臺(tái)里的東西了。然后,我看到了對(duì)所有模式的提取,因此每個(gè)$.ajax()調(diào)用都能工作。get chschema()確實(shí)會(huì)返回一系列承諾。但是,F(xiàn)inalWHERE()子句從未觸發(fā),而“已完成”一詞從未出現(xiàn)在控制臺(tái)上。jQuery-1.5的源代碼似乎意味著“NULL”是可以接受的對(duì)象,可以傳遞到$.Wh.Apply(),因?yàn)槿绻麤](méi)有傳入對(duì)象,那么當(dāng)()構(gòu)建一個(gè)內(nèi)部的Deferred()對(duì)象來(lái)管理列表時(shí),它是可以接受的。這使用了Futures.js。如果不是這樣,應(yīng)該如何管理jQueryDeferreds數(shù)組? 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);
});
});
如何處理jQueryDeferreds數(shù)組?
qq_花開(kāi)花謝_0
2019-08-02 07:03:49