[英]How do I retrieve an async value for a restangular parameter?
I need to retrieve a value from an async service to add as a parameter to every rest call. 我需要从异步服务中检索一个值,以作为参数添加到每个休息调用。 The casService.getProxyTicket() is an $http call...
casService.getProxyTicket()是一个$ http调用...
I have the following code :- 我有以下代码: -
myFactories.factory('myFactory', [
'Restangular'
, 'casService'
, function (Restangular
, casService) {
return Restangular.withConfig(function (config) {
config.setBaseUrl('https://host:port/somecontext/rest');
config.addFullRequestInterceptor(function (element
, operation
, route
, url
, headers
, params
, httpConfig) {
... What do I need to do here? ......我需要做什么?
casService.getProxyTicket(url).then(function(st){
console.log('proxyTicket = ' + st.data.ticket);
});
params.ticket = ?????? <= st.data.ticket
... ...
return {
element: element
, headers: headers
, params: params
, httpConfig: httpConfig
}
});
}).service('myCollection');
}]
);
...thanks in advance!!!! ...提前致谢!!!!
Ok, my lack of understanding coming from a backend developer's background... 好吧,我缺乏理解来自后端开发人员的背景......
This can/should NOT be done this way! 这可以/不应该这样做! I was trying to make the call to get a proxy ticket synchronous.... DON'T DO IT!
我试图打电话让代理票同步....不要这样做!
What I did was to rearrange my code thus ... 我所做的是重新安排我的代码,因此......
function readItem(id) {
var endpoint = myFactory.one(id);
return casService.getProxyTicket(endpoint.getRestangularUrl())
.then(function (response) {
return endpoint.get({ticket: response.data.proxyTicket});
}).then(function (response) {
return response.plain();
});
}
...works like a charm! ...奇迹般有效!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.