2017-03-24 8 views
0

私はParseデータを使用していますが、取引はParseUserArray変数を返したいのですが、成功したことを渡した直後です。私はどうすればいいのだろうと思っていた。事前に

var UserWs = angular.module('UserWs', []); 

    UserWs.service('UserWsService', ['parseInit', function(parseInit){ 
     var service = this; 
      this.getUserAtParse = function(id){ 
       var user = Parse.Object.extend("User"); 
       var query = new Parse.Query(user); 
        var parseUserArray = []; 
        query.find({ 
         success: function(anUser) { 
          for (var i = 0; i < anUser.length; i++) { 
           var newUser = new User(anUser[i]); 
           parseUserArray.push(newUser); 
          } 
          console.log(parseUserArray); 

         } 

        }); 

        var User =function(anUser){ 
         this.id = anUser.id; 
         this.name = anUser.get("name"); 
         this.email = anUser.get("username"); 
         this.company = anUser.get("company"); 
        } 
      return parseUserArray; 


       }; 

感謝:)

+0

http://stackoverflow.com/questions/14220321/how-do-i-return -the-as-asynchronous-callからの応答 –

+0

しかし、私はajaxを使用していません –

+0

'$ timeout'内の' UserWsService.getUserAtParse'への呼び出しをなぜラップしないのですか? – lealceldeiro

答えて

2

あなたはこのためにpromiseを使用することができます - $qサービス

var UserWs = angular.module('UserWs', []); 

UserWs.service('UserWsService', ['$q', 'parseInit', function($q, parseInit) { 
    var service = this; 
    this.getUserAtParse = function(id) { 
    var defer = $q.defer(); 
    var user = Parse.Object.extend("User"); 
    var query = new Parse.Query(user); 
    var parseUserArray = []; 
    query.find({ 
     success: function(anUser) { 
     for (var i = 0; i < anUser.length; i++) { 
      var newUser = new User(anUser[i]); 
      parseUserArray.push(newUser); 
     } 
     console.log(parseUserArray); 
     defer.resolve(parseUserArray); 
     } 

    }); 

    var User = function(anUser) { 
     this.id = anUser.id; 
     this.name = anUser.get("name"); 
     this.email = anUser.get("username"); 
     this.company = anUser.get("company"); 
    } 
    return defer.promise; 
    } 
}]); 

UserWs.controller('sampleCtrl', ['$scope', 'UserWsService', function($scope, UserWsService) { 
    UserWsService.getUserAtParse(SOME_ID).then(function(resultArray) { 
    //logic here 
    }); 
}]); 
+0

私は実際にこれがhahaha存在することを知らなかった、私はドキュメンテーションを見て、あなたのソリューションも試してみる!おかげで –

+0

それは本当にすべての仕事を作る!再度、感謝します –

関連する問題