установить таймаут для функции $ state.go

0

Я пытаюсь добавить тайм-аут, когда я вызываю функцию в службе. Эта функция запускает процесс, который добавляет задачи в очередь.

Все работает нормально в этом процессе, даже функция $ state.go, но я слишком скоро дохожу до точки зрения маршрутов. Я не вижу результат процесса, который я запускаю, потому что я добираюсь до представления, прежде чем процесс начнет выполнять сам.

Я думал добавить тайм-аут, но не работает (или я не знаю, сделал ли я это неправильно)

function CreateMigrationCtrl(MigrationService, $state, $timeout) {

...

$timeout($state.go('app.migration'), 3000);
}

Это правильный способ его использования?

Могу ли я использовать таймаут для задержки выполнения $ state.go?

Теги:
angular-ui-router
timeout

2 ответа

3

В вашем коде $ state.go вызывается немедленно, и вы передаете результат в таймаут, другими словами, ваш код выглядит так:

var result = $state.go('app.migration');
$timeout(result, 3000);

Вместо этого вам нужно передать ссылку на функцию, которая должна вызываться после определенного количества времени

$timeout(function() {
    $state.go('app.migration');
}, 3000);

или

$timeout($state.go.bind(null, 'app.migration'), 3000);
  • 0
    Спасибо Адриан, это было полезно
0

Вы должны дать function $timeout.

$timeout(function() {
    $state.go('app.migration');
}, 3000);
  • 0
    Спасибо большое Джон, это решило мою проблему.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню