Я пытаюсь добавить тайм-аут, когда я вызываю функцию в службе. Эта функция запускает процесс, который добавляет задачи в очередь.
Все работает нормально в этом процессе, даже функция $ state.go, но я слишком скоро дохожу до точки зрения маршрутов. Я не вижу результат процесса, который я запускаю, потому что я добираюсь до представления, прежде чем процесс начнет выполнять сам.
Я думал добавить тайм-аут, но не работает (или я не знаю, сделал ли я это неправильно)
function CreateMigrationCtrl(MigrationService, $state, $timeout) {
...
$timeout($state.go('app.migration'), 3000);
}
Это правильный способ его использования?
Могу ли я использовать таймаут для задержки выполнения $ state.go?
В вашем коде $ 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);
Вы должны дать function
$timeout
.
$timeout(function() {
$state.go('app.migration');
}, 3000);