Проблема в том, что вам немного глубже нужно разобраться с промисами в ангуляре
then всегда возвращает новый promise
Взглянем на пример:
function asyncFunction() {
var deferred = $q.defer();
doSomethingAsync().then(function(res) {
res = asyncManipulate(res);
deferred.resolve(res);
}, function(err) {
deferred.reject(err);
});
return deferred.promise;
}
Здесь бессмысленно создается новое обещание $q.defer(). Автор кода явно не знал, что then итак вернет promise. Чтобы улучшить код, просто вернем результат then:
function asyncFunction() {
return doSomethingAsync().then(function(res) {
return asyncManipulate(res);
});
}
Ссылка на полную статью
https://habrahabr.ru/post/221111/
П.С. вывидите в консоль что у вас приходит в order - может он пустой ?