javascript - 延迟的 Angular $timeout

标签 javascript angularjs

我希望浏览器在执行下一行代码之前等待 3 秒。

$超时(3000);在脚本中似乎没有做到这一点。我在这里做错了什么吗?

我在 $scope 函数中使用它

app.expandController = function ($scope,$interval, $timeout) {

    $scope.nextLevel = function () {

            //stop numbers
            $scope.StopTimer();

            $timeout(function(){return true;},3000);

            //restart timer with new numbers
            $scope.StartTimer();

            $scope.thresholdwatch == false
        }
}

我通过将 $scope 和 $timeout 传递给另一个函数来分割 Controller 文件

app.controller('myCtrl', function ($scope, $interval, $timeout) {


    app.expandController($scope, $interval,$timeout);

});

最佳答案

如果您使用$timeout,您需要将下一个执行代码放在超时回调中。但是使用 vanila js 进行简单的破解是,

function sleep(ms) {
  var dt = new Date();
  while (Date.now() - dt.getTime() <= ms) {}
  return true;
}

console.log('timer start');
sleep(3000);
console.log('Printing after 3000ms');

关于javascript - 延迟的 Angular $timeout,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42990764/

相关文章:

javascript - 如何通过单击复选框按钮来切换 ng 类?

angularjs - 使用空对象进行 Angular 排序

javascript - 传单在缩放级别计算每像素米数

javascript - 当我的所有 Ng-from 都有效时启用一键

javascript - d3 js 运行不正常

javascript - 链接 Angular promise 拒绝

javascript - AngularJS 中的复选框不会触发 onChange 事件

javascript - 与SPA一起使用时,与ASP.NET MVC API一起使用时,slidingExpiration似乎不起作用

javascript - 超集 map 框工具提示的个性化

javascript - 给子元素添加悬停效果css/jquery