我想写一个服务,它做多个异步请求,我使用$ q返回一个承诺,问题是我正在写一些重复的代码,我想删除重复。我如何写在AngularJS的承诺
app.factory('MyService',function($q){
var ser = {
getA:function(){
var d= $q.defer; //repetitive code
asyn1().then(function(){
aync2().then(function(res){
//Process data
doSomething(res)
d.resolve();
})
});
return d.promise
} ,
getB:function(){
var d= $q.defer;
asyn3().then(function(){
aync4().then(function(res){
//Process data
doSomething(res)
d.resolve();
})
});
return d.promise
}
}
return ser;
});
在每一个功能,我重复$q
的事情,我怎么能避免重复。
我想要做一些数据预处理,aync2后,返回之前。所以我认为我不能忽视$ q –
是的,你可以通过链接承诺。我会修改我的答案。 –