1

現在、Promise を返す AngualrJS のユーザー サービスがあります。

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

キャッシュされたユーザーを返す機能を追加したいのですが、一方がプロミスを返し、もう一方が実際のデータを返すため、これを行うことができるとは思いません:

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

これを処理する最善の方法は何ですか?

ありがとう!

4

1 に答える 1

5

常に 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;
        },
于 2013-07-16T20:34:09.333 に答える