jQuery Deferredの配列をどのように操作しますか?
データを特定の順序でロードする必要があるアプリケーションがあります。ルートURL、次にスキーマ、最後にさまざまなデータオブジェクトのスキーマとURLを使用してアプリケーションを初期化します。ユーザーがアプリケーションをナビゲートすると、データオブジェクトがロードされ、スキーマに対して検証され、表示されます。ユーザーがデータをCRUDすると、スキーマは初回パスの検証を提供します。 初期化に問題があります。Ajax呼び出しを使用してルートオブジェクト$ .when()をフェッチし、スキーマオブジェクトごとに1つずつ、promiseの配列を作成します。うまくいきます。コンソールにフェッチが表示されます。 次に、すべてのスキーマのフェッチが表示されるので、各$ .ajax()呼び出しが機能します。fetchschemas()は確かにpromiseの配列を返します。 ただし、その最後のwhen()句は起動せず、「DONE」という単語はコンソールに表示されません。jquery-1.5のソースコードは、$。when.apply()に渡すオブジェクトとして「null」が受け入れられることを示唆しているようです。渡された。 これはFutures.jsを使用して機能しました。このようにならない場合、jQuery Deferredの配列はどのように管理する必要がありますか? 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", …