浏览器中的javascript引擎是单线程的,如果在setTimeout设定的时间到达时,javascript引擎还在处理另外的代码,那么setTimeout设定的事件就只有排队等待了。所以一般来说setTimeout设定的时间都是不准确的,会比设定的晚。就算setTimeout时间设定为0,也不一定马上执行,这样设定是把想执行的函数放在javascript引擎执行队列的末尾。
继续阅读 »
前言
每次写文章都想在前面提提~~事实~~时事,今天想说的是:*******,如果你看到的是星号,那很抱歉,“福利”被和谐了,你可以更换浏览器试试。本文对setTimeout、setImmediate、process.nextTick的区别做了简单阐述,如有疑问,请留言。
api介绍
setTimeout(callback, delay):经过delay时间后只执行一次callback,但是并不能保证时间点的精确性。delay的意思是,告诉callback可以被执行了,如果callback所在队列前面还有任务没执行,那它也得稍等等。
**setImmediate(callback)**:执行callback的时机是在IO
继续阅读 »
content
{:toc}
关于写倒计时大家可能都都比较熟悉,使用 setTimeout 或 setInterval 就可以搞定。几秒钟或者几分钟的倒计时这样写没有问题,但是如果是长时间的倒计时,这样写就会不准确。如果用户修改了他的设备时间,这样的倒计时就没有意义了。今天就说说写一个精确的倒计时的方法。
继续阅读 »
其实这篇文章主要是介绍这个东西 Proposal Bind Operator 或者 bind_operator。
也是在一个很偶然的机会看到了,git 上面的一个项目用到了这个用法,为什么自己发现不了这些东西呢?
传统的 this 绑定
在函数外面暂存一个变量
js
// 别名
var self = this;
setTimeout(function() {
this.doSomething();
}, 1000);
使用 bind 函数 & 箭头函数
在使用 class *** extends React.Component {} 的写法声明 React 组件的时候,组件的方法都不会被自动绑定 this 了,下面
继续阅读 »