Javascript 非同期関数とコールバックを把握しようとしています。
私はいくつかの場所で読んでいるコールバック関数の概念に行き詰まりました:それらはコードの順次実行(主にアニメーションなどのjqueryのコンテキストで)と、特に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の後に来るはずです。