我正在尝试在服务上调用函数时添加超时。该函数运行一个将任务添加到队列的进程。
在这个过程中,一切都运行良好,甚至是$ state.go函数,但是我很快就会看到路由引用的观点。我无法看到正在运行的进程的结果,因为我在进程开始执行之前已进入视图。
我在考虑添加超时但是没有工作(或者我不知道我做错了)
function CreateMigrationCtrl(MigrationService, $state, $timeout) {
...
$timeout($state.go('app.migration'), 3000);
}
这是正确的使用方式吗?
我可以使用超时来延迟执行$ state.go吗?
答案 0 :(得分: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);
答案 1 :(得分:0)
您应该向$timeout
提供$timeout(function() {
$state.go('app.migration');
}, 3000);
。
id