Я пытаюсь понять следующий обратный вызов:

doThis(andThenThis); function andThenThis() { console.log('and then this') } function doThis(callback) { setTimeout(function() { console.log('this first') }, 500) callback() } 

Я попытался использовать обратный вызов, чтобы моя функция выполнялась после setTimeout , независимо от того, сколько времени занимает выполнение первой функции.
Я ожидаю, что он напечатает: «это сначала», а затем: «а потом это». Есть ли способ, которым я могу это сделать?

Ваш код делает это:

  • установить таймер, который будет выполнять функцию через 500 мс (это действие не требует времени)
  • вызовите callback () (сразу после предыдущей команды), который выдает «а затем это»

… через 500 мс:

Большая ошибка — поместить код, который должен быть выполнен первым, в функцию «с задержкой»!
Это ваш код правильно, чтобы оправдать 2 журнала правильно.

 doThis(andThenThis) function andThenThis() { console.log('and then this') } function doThis(callback) { console.log('this first') // this is executed immediately setTimeout(function() { callback() // this will be executed after 500ms }, 500) // console.log('this first') // if moved here it is still executed before the callback } 

Простой пример

 function theCallBack(data){ console.log(data, "From doSomethingmethod") } function doSomething(callback){ //Calling callback after Some operation //Example axios.get(url) .then(function(response){ callback(response) }) } doSomething(theCallBack); 

Вот как вы используете функцию обратного вызова.

 function doThis(callback) { console.log('this first') setTimeout(() ={amp}gt; { callback() }, 500) }