我想抓住Javascript异步函数和回调。默认为Javascript同步(阻止)或异步(非阻塞)
我陷入了回调函数的概念,在某些地方我正在阅读它们:它们用于顺序执行代码(主要在jquery的上下文中,例如动画)和一些特别在Nodejs上下文中的地方;它们用于并行执行异步并避免代码的阻塞。
因此,在这个主题的一些专家请澄清这一点,并清除我脑海中的这个模糊(例子??)。 所以我可以让我的脑海回调函数的用法
或者说是完全取决于你在哪里调用/放置一个回调函数在代码的地方吗? 。
感谢,
PS:我很害怕,这个问题将是接近主观的,但我依然可以期待这个具体的答案(也许是一些例子)
编辑:其实这是例如,从互联网这让我ambigous:
function do_a(){
// simulate a time consuming function
setTimeout(function(){
console.log('`do_a`: this takes longer than `do_b`');
}, 1000);
}
function do_b(){
console.log('`do_b`: this is supposed to come out after `do_a` but it comes out before `do_a`');
}
do_a();
do_b();
结果
`do_b`: this is supposed to come out after `do_a` but it comes out before `do_a`
`do_a`: this takes longer than `do_b`
当JS是顺序的,那么根据我的理解,do_b应该总是在do_a之后出现。
JavaScript是JavaScript的;它取决于上下文,用法,引擎等。 – 2013-05-13 14:00:00
你能否提供一些你不确定它是否阻塞与非阻塞的示例代码? – Matt 2013-05-13 14:06:11
JavaScript通常是同步的,但根据定义,setTimeout是异步的。这里有一个很好的入门知识:https://developer.mozilla.org/en-US/docs/DOM/window.setTimeout – 2013-05-13 14:25:02