基本上我有一个角度资源API服务如下。我使用下面的嵌套链接方法,我认为编码视角不太好(特别是当需要多个链接时)
angular.module('user')
.factory('UserAPI', ['$resource'],
function ($resource) {
return $resource('User', {},
{
GetUserDetail1: {
method: 'GET',
url: url1
},
GetUserDetail2: {
method: 'GET',
url: url2
}
}
}
)
UserAPI.GetUserDetail1({ ID: id }).$promise.then(function (res) {
UserAPI.GetUserDetail2({ ID: res.userID }).$promise.then(function (res1) {
}, function (errRes1) {
});
}, function (errRes) {
});
所以,我现在正在考虑重构代码如下,但我不确定是否可以这样做。
function getUserDetail2 (res) {
};
UserAPI.GetUserDetails1({ ID: id})
.then(getUserDetail2(res))
.catch(function (errRes) {
// catch error if any error occur
});
答案 0 :(得分:1)
你只需要传递函数的引用而不是在那里调用它。
UserAPI.GetUserDetails1({ ID: id})
.then(getUserDetail2) //passed getUserDetail2 method here
.catch(function (errRes) {
// catch error if any error occur
});