В настоящее время я новичок в концепции обещаний angularjs и обнаруживаю, что застрял в асинхронной пирамиде.
Ситуация представляет собой асинхронную функцию, которая в случае успеха вызывает другую асинхронную функцию 2. Желаемый результат - выполнить некоторые операции после полного выполнения обеих функций.
// Inside Controller
ServiceName.AsyncFunc1().then(function(){
alert("Complete");
})
// Inside Service
app.service('ServiceName', function ($http) {
return {
AsyncFunc1 : function()
{
var self = this;
return $http.post(url).
success(data)
{
self.AsyncFunc2();
}
},
AsyncFunc2 : function()
{
return $http.post(url2).
success(data)
{
alert("AsyncFunc2 Complete");
}
},
}
});
Теперь я хочу, чтобы alert("Complete") вызывался, когда оба последовательных асинхронных вызова завершены. Но в настоящее время у меня есть предупреждение («Завершено») перед предупреждением («AsyncFunc2 Complete»);
return self.AsyncFunc2();
, также изменитеsuccess
наthen
. - person Mikko Viitala   schedule 03.09.2015