Похоже, вы неправильно поняли, как работает setTimeout()
.Этот инструмент под названием «Loupe» от Philip Roberts может помочь вам понять.Я взял ваш код и поместил его в инструмент, который позволит вам визуализировать то, что на самом деле происходит - ссылка на лупу
Когда вы используете setTimeout
, эта функция предоставляется как перваяПараметр задерживается на количество миллисекунд, указанное во втором параметре (в вашем примере это 1000
).Остальная часть вашего кода будет продолжать выполняться по порядку, пока не истечет этот тайм-аут.
Если вы хотите, чтобы ваша функция callback
выполнялась после заданного тайм-аута: вы можете просто написать ее так:
setTimeout(callback, 1000)
<- Поскольку <code>callback уже является функцией, вам не нужно заключать ее в другую функцию, если вы не хотите выполнять другие операции перед вызовом обратного вызова.
Обновление 1 (2018-10-26):
function second() {
console.log("second/callback function")
}
function first(callback){
console.log("first function")
setTimeout(callback, 1000);
}
first(second);