简体   繁体   English

如何检索restangular参数的异步值?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM