我正在尝试掌握 Javascript 异步函数和回调。
我陷入了回调函数的概念,我正在阅读一些地方:它们用于顺序执行代码(主要是在 jquery 的上下文中,例如 animate)和一些特别是在 Nodejs 的上下文中的地方;它们用于并行执行异步并避免代码阻塞。
那么这个主题的一些专家能否阐明这一点并清除我脑海中的这个模糊(例子??)。所以我可以考虑使用回调函数
或者这完全取决于您在代码中调用/放置回调函数的位置?.
谢谢,
PS:我担心这个问题会很主观,但我仍然可以期待具体的答案(也许是一些例子)
编辑:实际上这是来自互联网的例子,这让我模棱两可:
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 之后。