本文介绍了工厂用户服务,要么返回一个承诺或缓存的数据?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在AngualrJS用户服务,目前正在返回一个承诺:

I have a user service in AngualrJS that currently returns a promise:

        getData: function() {
            return Restangular.one('users', id).get({single: true});
        },

我要添加到返回缓存用户的能力,但不认为我可以做到这一点作为其中一个返回的承诺和其他收益的实际数据:

I want to add the ability to return the cached user, but don't think I can do this as one returns a promise and the other returns the actual data:

        getData: function() {
           if !data
            return Restangular.one('users', id).get({single: true});
           else
            return data
        },

什么是处理这个问题的最佳方式?

What is the best way to handle this?

谢谢!

推荐答案

您应该修改code如下总是返回一个承诺

You should modify your code as below to always return a promise

 getData: function() {
          var deferred = $q.defer()
           if !data
            Restangular.one('users', id).get({single: true}).then(function(data){
               deferred.resolve(data);
             });
           else
            deferred.resolve(data);
            return deferred.promise;
        },

这篇关于工厂用户服务,要么返回一个承诺或缓存的数据?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

11-03 01:55