Я пытаюсь понять асинхронные функции и обратные вызовы Javascript.
Я застрял на концепции функций обратного вызова, где я читаю в некоторых местах: они используются для последовательного выполнения кода (в основном в контексте jquery, например, анимация) и в некоторых местах специально в контексте Nodejs; они используются для параллельного асинхронного выполнения и предотвращения блокировки кода.
Может ли какой-нибудь эксперт в этой теме пролить свет на это и прояснить эту путаницу в моей голове (примеры??). чтобы я мог решить использовать функцию обратного вызова
или это зависит исключительно от того места, где вы вызываете/размещаете функцию обратного вызова в своем коде? .
Спасибо,
P.S: я боюсь, что этот вопрос будет близок к субъективному, но все же я могу ожидать конкретного ответа на него (возможно, несколько примеров)
Редактировать: на самом деле это пример из Интернета, который вызывает у меня двусмысленность:
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, согласно моему пониманию.