Используйте $q.all()
, а затем разрешите обещание.
$q.all()
позволяет вам ожидать массив обещаний, $ q.all () объединит их в одно обещание.
Ваш код обновлен:
$scope.getUser = function (applicantUser) {
get(applicantUser).then(function (result) {
$scope.requests = result;
}, function (error){
console.log(error);
});
};
var get = function (applicantUser) {
var defer = $q.defer();
var temp = [];
var promise1 = GetListOfRequestsPerUser.get({userId: '', newUserSerialNumber: applicantUser}).$promise;
var promise2 = GetRequestsById.get({requestId: applicantUser}).$promise;
$q.all([promise1, promise2]).then(function(result) {
// GetListOfRequestsPerUser
result[0].data.forEach(function (request) {
temp.push(request);
});
// GetRequestsById
result[1].data.forEach(function (request) {
temp.push(request);
});
defer.resolve(temp);
});
return defer.promise;
};
Все о драйверах оборудования и пользовательских возможностях. NI (Labview) имеет хорошо поддерживаемый набор драйверов оборудования лаборатории, с которыми легко соединяют интерфейсом. Для тестового оператора (не разработчик) нужен gui с большой зеленой/красной кнопкой передачи/сбоя. Я реализовал сложную автоматизацию с помощью Python в cygwin. Разработчик Labview смог вызвать cygwin/python систему, и данные взрывают файлы журнала. Таким образом, можно сделать обоих. Система Python является портативной, удобной в сопровождении, расширяемой, применимой и лучшей из всех, свободной.
Мне преимущество LabVIEW не находится в графическом по сравнению с текстовым.
Это - поток данных по сравнению с императивом.
Программирование потока данных предоставляет себя параллелизму, потому что Ваша казнь смоделирована как черные квадраты, которые выполняются, когда их исходные данные допустимы, чьи исходные данные / выводы соединены проводом вместе. Это в противоположность неявному состоянию со списком инструкций относительно того, как изменить его. (Свободно перефразирующий 'kipedia, статья, связанная выше, лучше.)
Каждый черный квадрат может работать на отдельном ядре/процессоре/узле, которое дает Вам, эффективно, свободный параллелизм, если Вы организуете свою программу поток данных путь.
К сожалению (и это - оборотная сторона нанесения вреда к потоку данных, программирующему в целом), лучший способ визуализировать и отредактировать программы потока данных является графическим, не текстовым. Это делает инструменты использования, такие как управление версиями и генераторы кода очень трудными.
Вопрос: профессионалы потока данных перевешивают недостатки для Вас и Вашего проекта?
Я использовал labview прежде для вычисления параметров для настройки nMRI машины. Они существуют, потому что в теории это легче для кого-то с небольшим опытом языка программирования, создают программу. Поток управления и структуры решения могут быть расположены графически, и они могут ввести в их формуле, где они хотят.
Для преподавателей и помощников лаборатории... полезный. Для настоящих разработчиков программного обеспечения... было бы легче записать на другом языке.
Я использовал LabView в прошлом и для сбора данных, виртуального инструментария, и т.д. - лучше нет ничего. Прошлый раз, когда я использовал его, был 10 лет назад, и ничто, что я видел, так как соответствовал, где это было в середине 90-х.
Некоторые преимущества LabVIEW, по моему мнению:
Встроенные компоненты пользовательского интерфейса, такие как кнопки, графики и т.д. буквально не требуют никакого программирования вообще; Вы просто помещаете их на переднюю панель, и терминалы появляются на блок-схеме.
Существует крупная библиотека драйверов для аппаратных средств сбора данных и испытательных приборов. Если Ваша задача в основном о получении данных к и от них и помещения пользовательского интерфейса на нем затем, можно достигнуть его почти ни с каким программированием.
Параллельное выполнение нескольких задач обрабатывается автоматически - помещают два независимых цикла в схему, и они выполнятся одновременно. Это часто - требование в сборе данных и приложениях управления.
Многие люди, включая 'настоящих разработчиков программного обеспечения', чувствуют, что графическая парадигма удовлетворяет способу, которым они думают и визуализируют свое программное обеспечение лучше, чем текстовое. Существуют, несомненно, вещи, что текстовые языки лучше для, чем LabVIEW (покрытый другим обсуждением этого сайта), но где LabVIEW подходит, это очень хорошо в получении сделанного задания.
Одно из основных преимуществ для графического программирования с LabVIEW - то, что исходный код очень похож на принципиальные схемы, таким образом, это - очень легкий язык для электрического / инженеров-электроников для взятия. Это - одна из причин, что LabVIEW стал настолько популярным в полях сбора данных и автоматизации, где EEs многочисленны.
Другим преимуществом, которое я нашел, была необработанная скорость разработки. Вы собираете свои графический интерфейсы пользователя от палитры доступных средств управления на передней панели, очень похожих на то, как Вы делаете это в Visual Studio. Исходный код записан подобным образом со многими предопределенными компонентами, которым можно заглядывать из меню и провода вместе.
Третьим преимуществом является совместимость с аппаратными средствами. Национальные Инструменты основной бизнес является аппаратными средствами сбора данных, и они идут на многое, чтобы удостовериться, что все их продукты могут общаться с программным обеспечением LabVIEW прямо из поля. Многие другие поставщики оборудования в промышленности управления сбором данных и автоматизацией делают то же.