码迷,mamicode.com
首页 > 编程语言 > 详细

JavaScript 的setTimeout 和Angular中的$timeout的區別

时间:2017-11-07 16:17:33      阅读:188      评论:0      收藏:0      [点我收藏+]

标签:form   rom   代码   script   通过   timer   rip   type   传递   

JavaScript中setTimeout返回值类型和意义说明:

1、setTimeout :暂停指定的毫秒数后执行指定的代码,返回值是id标识,这个id的意义就是通过clearTimeout来清理暂停执行函数。

setTimeout函数的ID标识(number类型),每次调用setTimeout函数都会产生一个唯一的ID,可以通过clearTimeout函数(此函数的参数接收一个setTimeout返回的ID)暂停setTimeout函数还未执行的代码

<html>
<head>
<script type="text/javascript">
var c=0
var t
function timedCount()//开始计时
{
document.getElementById(‘txt‘).value=c
c=c+1
t=setTimeout("timedCount()",1000)
}

function stopCount(){//停止计时
   clearTimeout(t)
}
</script>
</head>

<body>
<form>
<input type="button" value="开始计时!" onClick="timedCount()">
<input type="button" value="停止计时!" onClick="stopCount()">
<input type="text" id="txt">
</form>
<p>请点击上面的按钮。输入框会从 0 开始一直进行计时。</p>
</body>

</html>

AngularJS中$timeout返回值类型和意义说明:

和javascript中原生的setTimeout()以及setInterval()函数不同,AngularJS中的$timeOut()函数会返回一个promise。和其他的promise一样,你可以绑定$timeOut的resolved和rejected时间。然而更重要的是,你可以通过将这个promise传递给$timeOut.cancel()方法来取消掉潜在的定时器。

timeout函数的返回值是一个promise,当到达设置的超时时间时,这个承诺将被解决,并执行timeout函数。

需要取消timeout,需要调用$timeout.cancel(promise);

使用: $timeout(fn,[delay],[invokeApply]);

fn:一个将被延迟执行的函数。

delay:延迟的时间(毫秒)。

invokeApply:如果设置为false,则跳过脏值检测,否则将调用$apply。

 $scope.timer = $timeout( function(){
    $scope.backup("1");
  }, 10000);

方法

cancel(promise);

取消与承诺相关联的任务。这个的结果是,承诺将被以摒弃方式来解决。

promise:$timeout函数返回的承诺

$timeout.cancel($scope.timer)

 

JavaScript 的setTimeout 和Angular中的$timeout的區別

标签:form   rom   代码   script   通过   timer   rip   type   传递   

原文地址:http://www.cnblogs.com/qiu-Ann/p/7799186.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!