你可以使用延迟功能..你需要注入$ Q ..
创建一个服务,然后添加你为gettoken http请求的代码。像这样
myapp.factory('myService',$q,$http){
var deferred = $q.defer();
var newVal = { 'Value': val };
var getToken = functino(){ $http({
method: 'PATCH',
url: baseService.getBaseService + 'ModuleAndParameters(' + ModAndParamsId + ')',
data: newVal
}).success(function (data, status, headers, config) {
deferred.resolve(data)
}).error(function (data, status, headers, config) {
deferred.reject(status);
});
return deferred.promise;
};
return getToken;
}
然后在你的控制器,,注入的名字你的服务..而只是单纯的做这样的..
myService.getToken().then(function(result){
getUserData(result);
})
我希望它有帮助.. xD
*“但我知道在承诺中履行承诺并不是那么好”*〜得到了一个参考? – Phil 2014-11-06 00:38:18
如果你不想嵌套匿名函数,你可以使用getToken()。然后(getUserData);我不太确定你在问什么。 – rtucker88 2014-11-06 00:40:47
为什么不使用'promise.then()。then()' – deadlock 2014-11-06 00:50:47