Angular js - выполнить и выполнить() порядок выполнения

Благодаря этому ответу Документация AngularJS app.run()? я могу видеть порядок, в котором модули запускаются Angular, мой вопрос:

если у меня есть:

app.config(function () {
    $routeProvider.when('/', {
        ....
        resolve: {
            // something to resolve
        }
    });
});

app.run(function () {
    // something to run
});

Будет ли выполняться run() до того, как будет удален routeProvider resolve:{}?

Ответ 1

По крайней мере, в моих экспериментах да, разрешение выполняется после app.run.

В этом jsfiddle вы можете видеть, что вызывающий заказ у меня был:

  • app config
  • запуск приложения
  • настройка директивы
  • компиляция директивы
  • контроллер приложений
  • директивная ссылка
  • ** Разрешение данных называется **
  • новый контроллер маршрута

Как вы можете видеть в скрипке, я проверил это, используя функцию console.log как значение свойства объекта, переданного в resolve:

resolve: {
            data: function() {
              console.log('Data resolve called');
            }
         }

Вы можете использовать этот же подход в своем коде, чтобы проверить, когда routeProvider начинает проверку зависимостей.