zoukankan      html  css  js  c++  java
  • [AngularJS] $interval

    $interval provides an excellent service for timed operations in your AngularJS apps. It has the advantage over setInterval in "normal" Javascript in that it is aware of Angular's view cycles, as well as being mockable for unit tests. Additionally, it returns a promise and provides a lot of flexibility.

    Read More: https://docs.angularjs.org/api/ng/service/$interval

    <!DOCTYPE html>
    <html>
    <head lang="en">
        <meta charset="UTF-8">
        <title></title>
        <script src="bower_components/angular/angular.min.js"></script>
        <script src="app.js"></script>
    </head>
    <body ng-app="app" ng-controller="AppCtrl as app">
        <button ng-click="app.cancel();">cancel</button>
    </body>
    </html>
    /**
     * Created by Answer1215 on 11/22/2014.
     */
    
    function AppCtrl($q, $interval) {
    
        var vm = this;
        vm.cancel = cancel;
        vm.rejectIt = false;
    
        var timer = $interval(function(){
            vm.rejectIt = !vm.rejectIt;
            doAsync(vm.rejectIt).then(function(data){
                console.log(data.resolveData);
            }, function(error){
                console.log(error.rejectData);
            });
        }, 600, 10); // 600 ms, 10 times
    
        function doAsync(rejectIt){
            return $q(function(resolve, reject){
                    var doneTime = +new Date();
                    console.log(doneTime);
                    if(!rejectIt){
                        resolve({
                            resolveData: 'resolve it at '+doneTime
                        });
                    }else{
                        reject({
                            rejectData: 'reject it at '+doneTime
                        });
                    }
            });
        }
    
        function success() {
            console.log("done");
        }
    
        function error() {
            console.log("cancelled or error");
        }
    
        function notify() {
            console.log("updating");
        }
    
        timer.then(success, error, notify);
    
        function cancel() {
            $interval.cancel(timer);
        }
    }
    
    angular.module('app',[])
        .controller('AppCtrl', AppCtrl);

  • 相关阅读:
    一、flink架构模型
    每日看点
    argparse模块用法实例
    Python 牛刀小试
    spark 编程基础
    我想过的100种暴富机会
    hadoop大数据架构
    centOS7 ip 配置
    classNotFound异常的一个原因
    linux上部署java项目
  • 原文地址:https://www.cnblogs.com/Answer1215/p/4114651.html
Copyright © 2011-2022 走看看