Проблем с таймером?
setTimeout - этот метод выполняет функцию, указанный в первом аргументе, асинхронно, с задержкой в миллисекундах. Javascript в любом случае дойдет до этой строчки и пойдет дальше, а через 3 секунды запустит функцию alert(1),
что бы сделать так, как вы хотите, надо поучить js
learn.javascript.ru/events-and-timing-depth