Как полностью выполнить функцию, не переходя к другой функции в JavaScript - PullRequest
0 голосов
/ 05 сентября 2018

У меня есть функция для установки навигационной панели с использованием ng-if, которое должно быть выполнено первым. При достижении Promise.all она переходит к другой функции, поэтому DOM уже создан без проверки значений ng-if. Мне нужно выполнить эту функцию без перехода к другой, полностью. Как получить это. Вот я попробовал это:

$scope.GetNavigationMenu = function GetNavigationMenu() {
        var modules = ["Dashboard", "Requirements", "Deviation Report", "Schedule", "Permission"];
        Promise.all(modules.map(Module => httpService.get(serviceBase + rightsPermissionUrl, { Module })))
          .then((list) => {
              // do stuff with `list` array
              $scope.navigationMenu = list;
          });
    }

1 Ответ

0 голосов
/ 05 сентября 2018

вы можете сделать вашу функцию асинхронной функцией и ожидать ответа, как показано ниже:

$scope.GetNavigationMenu = async function GetNavigationMenu() {
    var modules = ["Dashboard", "Requirements", "Deviation Report", "Schedule", "Permission"];
    let list = await Promise.all(modules.map(Module => httpService.get(serviceBase + rightsPermissionUrl, { Module })));
    // do stuff with `list` array
    $scope.navigationMenu = list;

}

Также вам не нужно снова определять имя функции => $ scope.GetNavigationMenu = function () {} буду работать Ссылка MDN для асинхронного / ожидающего

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...