На самом деле, этот вопрос можно упростить, чтобы «вернуть результат $ http или рестатулярного вызова в обещание». Моя цель состоит в том, чтобы иметь объект обещание, что будет решен после того, как $ HTTP вызов завершается:
var deferredCall= $q.defer();
Тогда это разрешенное от вызова:
$http.get (url)
.then(function(result){ deferredCall.resolve('Success' + result);},
function(){ deferredCall.resolve('Failure' + error););
Тогда у меня есть объект обещание, что будет решена когда вызов завершен (или последующий или непринятия), это то, что я хочу:
deferredCall.promise.then(function (value) {
return //something to pass to controller;
});
цель состоит в том, что контроллер инстанциируется является ли разрешать succeds или терпит неудачу. Моя проблема? Решение может принять только обещание, поэтому: `deferredCall.promise. Как я могу решить это обещание с помощью вызова выше, связанного с Решением/через службу? Являются ли результаты метода обслуживания обещанием?
Как, если я делаю услугу, чей метод вызывает вызов $ http, а затем возвращает отложенную транзакцию?
Зачем вам нужно $ q для этого? –
Я не знаю, как это сделать, используя angularjs. Это не я говорю: «Нет другого способа сделать это» - я просто не знаю, как подойти к этой проблеме в javascript. $ q была моей догадкой. Я ищу все, что достигнет конечной цели - получить обещание, которое возвращает результаты вызова $ http, если он терпит неудачу или преуспеет. Вызов должен быть вложен в другое обещание, потому что если вызов разрешения не выполняется, контроллер не создается. – VSO
@VSO вам не нужно создавать другое обещание. Просто верните обещание '$ http.get'. –