2016-03-25 2 views
0

So habe ich diesen CodeWie synchronen Laden in AngularJS, um sicherzustellen, app.js

getTens.getToken($rootScope.webUserInfo[0].username).then(function(resulttoken) { 
     $rootScope.userInfo = resulttoken; 
     $sessionStorage.token = resulttoken[0].token; 
     $sessionStorage.userInfoStorage = $rootScope.userInfo; 
     CasesGroupByCaseStatus.getListing($rootScope.webUserInfo[0].username).then(function(data){ 
      $rootScope.listingDetails = data; 
      $sessionStorage.listingDetailsStorage = $rootScope.listingDetails; 
     }); 

     CasesGroupByCaseStatus.caseStatusCount($rootScope.webUserInfo[0].username).then(function(resultcaseStatus){ 
      $rootScope.dashboardStatus = resultcaseStatus; 
      $sessionStorage.dashboardStatusStorage = $rootScope.dashboardStatus; 
      console.log("it is finished") 
     }); 
     }); 
     return [200, { authorizationToken: $sessionStorage.token}]; 

In meinem Code, ich es die Funktion zuerst, bevor Sie den Wert zurück, aber was passiert ist, zu vollenden will, dass sie die Rückkehr feuert Zuerst die Funktion ausführen, Wie gehe ich damit um?

Dieser Code ist meine app.js. Also kann ich Sachen wie scope.watch und alle nicht tun.

+0

anstatt das eigentliche Objekt zurückzugeben, warum gibst du kein Versprechen zurück und löst es, nachdem alle anderen Versprechen gelöst sind? – sdfacre

Antwort

0

Ich bin mir nicht sicher, ob dies ein guter Weg, um das Problem zu lösen, aber für meine Anwendung habe ich ein

$rootScope.$broadcast('loaded', true); 

innerhalb der Callback/Erfolgsfunktion des asynchronen Teils und dann in diesem meinen Code setzen :

$scope.$on('loaded', function(){ //everything is loaded }); 

Wie gesagt, nicht sicher, ob das eine gute Lösung ist oder nicht. Ich habe dies verwendet, um meine Anwendung darauf zu warten, dass eine asynchrone Funktion das Lesen einer Datei beendet, bevor sie meine Anwendung startet. Eine Antwort ist besser als keine Antwort.

Verwandte Themen