理解javascript异步机制(setTimeout )

function f1(callback){    setTimeout(function () {      // f1的任务代码      callback();    }, 1000);  }f1(function(){console.log('我居然第二个输出!');})console.log('我第一个输出!哈哈哈哈');

上面code中,f1 函数先被执行,然而却后输出,这就是因为用了setTimeout。记住下面这句话:

setTimeout、setInterval 这两个函数都是异步的,,即:

他们的调用时序和程序的主流程是相对独立的,所以没有办法在主体里面等待它们的返回值,它们被打开的时候程序也不会停下来等待,否则也就失去了setTimeout及setInterval的意义了

(setTimeout的延迟时间为0,这个hack经常被用到,settimeout调用的函数其实就是一个callback的体现)

说了这么多,我主要想说的就是:javascript之所以能实现异步,主要靠的是setTimeout ,而不仅仅是callback!!!

希望能给你们带来帮助。欢迎探讨。

参考资料:

%EF%BC%BFjavascript.html

当你开展的事业从事的行动穷途末路大势已去的时候,

理解javascript异步机制(setTimeout )

相关文章:

你感兴趣的文章:

标签云: