亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何處理jQueryDeferreds數組?

如何處理jQueryDeferreds數組?

qq_花開花謝_0 2019-08-02 07:03:49
如何處理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貢獻1827條經驗 獲得超9個贊

你在找

$.when.apply($, promises).then(function(schemas) {
     console.log("DONE", this, schemas);}, function(e) {
     console.log("My ajax failed");});

這也會起作用(對于某些工作的價值,它不會修復損壞的Ajax):

$.when.apply($, promises).done(function() { ... }).fail(function() { ... });`

你會想通過$而不是null所以this$.whenjQuery..對源來說這不重要,但它比傳遞更好null.

通過將$.ajax替換為$.when和樣本作品

所以,這要么是Ajax請求中的問題,要么是傳遞到FETCH_Schema的數組的問題。




查看完整回答
反對 回復 2019-08-04
  • 3 回答
  • 0 關注
  • 447 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號