如何确保angularjs app.js中的同步加载

How to ensure synchronous loading in angularjs app.js

本文关键字:js 同步 加载 app angularjs 何确保 确保      更新时间:2023-09-26

所以我有这个代码

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

在我的代码中,我希望它在返回值之前先完成函数,但实际情况是,它在运行函数后首先触发返回,我该如何处理?

这段代码是我的app.js。所以我不能做scope.watch之类的事情。

我不确定这是否是解决问题的好方法,但对于我的应用程序,我放置了一个

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

在异步部件的回调/成功函数内部然后把我的代码放在里面:

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

就像我说的,不确定这是否是一个好的解决方案。我用它让我的应用程序在启动应用程序之前等待异步函数完成对文件的读取。我想,有答案总比没有答案好。