0

特定の順序で並べ替えられたプロパティを持つオブジェクトがあります。プロパティごとに AJAX 呼び出しを行う必要があり、応答をオブジェクトと同じ順序にする必要があります。または、少なくともすべての応答が到着した後、同じ順序で取得します。

編集:これが役立つ場合は、jQueryが利用可能です。

関連する質問に提案を適用しようとしましたが、成功しませんでした。

私は自分の機能を簡素化しました:

prefillTable : function (data) {
    console.log(data);
    // this is the order of properties I need in my response:
    // => Object {color: "blue", light: "led", type: "interior", size: "18"}

    for (var prop in data) {
        (
            function (key) {
                service.getAvailableValues(key, function (data) {
                    // this is where the sort order is missing right now
                    console.log(key);
                });
            }
        )(prop, data[prop]);
    }
}

// output order of console.log(key) is always different, for example:
// [11:53:12.099] => "type"
// [11:53:12.113] => "light"
// [11:53:12.120] => "color"
// [11:53:12.158] => "size"

面白いことに、Chrome では、応答の順序は常に要求の順序と同じです。Firefox ではシャッフルします。

4

1 に答える 1

2

オブジェクトは順序付けされていません。注文が必要な場合は、代わりに配列を返送してください。

 [ 
    { "name": "color", "value": "blue"},
    { "name": "light", "value": "led" },
    etc
 ]
于 2013-09-19T10:15:04.993 に答える