【发布时间】:2015-11-28 22:45:55
【问题描述】:
我目前对 angularjs 的 Promise 概念很陌生,发现自己陷入了异步金字塔中。
这种情况是一个异步函数,它在成功时调用另一个异步函数 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") 。 但目前我在 alert("AsyncFunc2 Complete") 之前有 alert("Complete");
【问题讨论】:
-
return self.AsyncFunc2();,同时将success更改为then。
标签: javascript angularjs asynchronous angular-promise