当我在一个服务上调用一个函数时,我试图添加一个超时。该函数运行一个将任务添加到队列的进程。
在这个过程中,一切都运行得很好,甚至$state.go函数也是如此,但我对路由所引用的视图的理解还为时过早。我看不到我正在运行的进程的结果,因为我在进程开始执行自己之前到达了视图。
我正在考虑添加一个超时,但是没有工作(或者我不知道我是否做错了)
function CreateMigrationCtrl(MigrationService, $state, $timeout) {
...
$timeout($state.go('app.migration'), 3000);
}这是正确的使用方式吗?
是否可以使用超时来延迟$state.go的执行?
发布于 2016-05-19 00:59:24
在您的代码中,$state.go被立即调用,您将result传递给timeout,换句话说,您的代码如下所示
var result = $state.go('app.migration');
$timeout(result, 3000);相反,您必须传递对应在指定时间后调用的函数的引用
$timeout(function() {
$state.go('app.migration');
}, 3000);或
$timeout($state.go.bind(null, 'app.migration'), 3000);发布于 2016-05-19 00:55:07
你应该给$timeout一个function。
$timeout(function() {
$state.go('app.migration');
}, 3000);https://stackoverflow.com/questions/37305769
复制相似问题