据我所知,$timeout 是一个角度的承诺对象,这意味着代码将继续运行而无需等待超时结束。
但是,当我在我的离子代码中使用它时,由于某种原因它确实如此,并且页面的整个加载冻结了 6 秒。你能解释一下为什么吗?
$scope.$on("$ionicView.Enter", function( scopes, states ) {
$timeout(function(){
// some function i wrote
}, 6000);
});
据我所知,$timeout 是一个角度的承诺对象,这意味着代码将继续运行而无需等待超时结束。
但是,当我在我的离子代码中使用它时,由于某种原因它确实如此,并且页面的整个加载冻结了 6 秒。你能解释一下为什么吗?
$scope.$on("$ionicView.Enter", function( scopes, states ) {
$timeout(function(){
// some function i wrote
}, 6000);
});
你对代码继续运行的假设是错误的——否则调用的意义$timeout
何在?它是一个 Angular 包装器,建议使用它代替 window.setTimeout() 但工作原理完全相同。上面的代码将在 6000 毫秒延迟后执行。
[添加] 来自Angular API 文档:“调用 $timeout 的返回值是一个承诺,当延迟过去并执行超时函数(如果提供)时,它将被解决。”