Използване на $q.all на Angular с взаимозависими обещания

Второто обещание се нуждае от резултат от първото обещание като параметър. Аз виждах пример за решаване на този проблем с ES6 обещания.

firstThingAsync()  
  .then(function(result1) {
    return Promise.all([Promise.resolve(result1), secondThingAsync(result1)]); 
  })
  .then(function(result1, result2) {
    // do something with result1 and result2
  })
  .catch(function(err){ /* ... */ });

Но не съм сигурен коя функция $q има поведение, подобно на Promise.resolve. Някакви идеи?


person nmeln    schedule 07.08.2015    source източник
comment
Отговорих на подобен въпрос преди: Може ли това влагане на обещание да бъде променено на верижно?   -  person New Dev    schedule 07.08.2015


Отговори (1)


В Angular 1.4 можете да използвате $q.resolve(result1).

Източник: Документи за Angular 1.4 $q.resolve.

В по-стари версии можете да използвате $q.defer().resolve(result1).

Източник: Angular 1.3 Deferred API документи.

person joews    schedule 07.08.2015