2

据我所知,$timeout 是一个角度的承诺对象,这意味着代码将继续运行而无需等待超时结束。

但是,当我在我的离子代码中使用它时,由于某种原因它确实如此,并且页面的整个加载冻结了 6 秒。你能解释一下为什么吗?

$scope.$on("$ionicView.Enter", function( scopes, states ) {
     $timeout(function(){
        // some function i wrote
     }, 6000);

});

4

1 回答 1

1

你对代码继续运行的假设是错误的——否则调用的意义$timeout何在?它是一个 Angular 包装器,建议使用它代替 window.setTimeout() 但工作原理完全相同。上面的代码将在 6000 毫秒延迟后执行。

[添加] 来自Angular API 文档:“调用 $timeout 的返回值是一个承诺,当延迟过去并执行超时函数(如果提供)时,它将被解决。”

于 2015-08-30T15:30:15.910 回答