setTimeout с небольшой задержкой позволит вашему потоку управления продолжить выполнение, планируя выполнение другой функции позже. Это особенно полезно для предотвращения блокировки или непреднамеренной зависимости пользовательского интерфейса от успешного выполнения другой функции.
Я считаю очень полезным предотвращать вмешательство ошибок javascript в связанные события. Например, чтобы установить обработчик отправки в форме:
$('#form').submit(function() {
setTimeout(function() {
// Submit handler function, i.e. do an ajax submission of the form
$.ajax(...etc...);
}, 1);
// Return false before the handler executes, ensuring the form won't manually submit
// in the event of a js error in the handler
return false;
});