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

时间:2016-05-10 09:00:51

标签: javascript angularjs promise cas restangular

我需要从异步服务中检索一个值,以便作为参数添加到每个休息调用中。 casService.getProxyTicket()是$ http调用...

我有以下代码: -

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) {

......我需要在这做什么?

                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');
    }]
);

...提前致谢!!!!

1 个答案:

答案 0 :(得分:0)

好的,我对后端开发人员的背景缺乏了解......

这可以/不应该这样做!我试图打电话让代理票同步......不要这样做!

我所做的是重新安排我的代码......

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();
        });
}

......就像一个魅力!