2013-09-19 2 views
0

У меня есть объект со своими свойствами, отсортированными в определенном порядке. Для каждого свойства я должен сделать вызов AJAX, и мне нужно, чтобы ответ был в том же порядке, что и объект. Или, по крайней мере, получить его в том же порядке после того, как все ответы пришли.Как отсортировать ответ AJAX в том же порядке, что и запрос?

EDIT: 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 он перетасовывается.

ответ

1

Объекты не упорядочены. Если вам нужен заказ, тогда отправьте обратно массив.

[ 
    { "name": "color", "value": "blue"}, 
    { "name": "light", "value": "led" }, 
    etc 
] 
Смежные вопросы