The reason that you aren't getting 1 2 3 -1 -2 -3 a b c is because your code does not stop at the setTimeout(...) call. This is because many JavaScript methods, by nature, are asynchronous. This means that they will not stop the flow of your code. That means when you call setTimeout(...), the JavaScript interpreter will make sure that the function passed into setTimeout is run in 2000ms, but does not stop and wait for it. It will continue on its normal execution flow, onto the next instruction.

If you wanted it to wait, you could put the letters() call after you print out the remaining numbers (-1, -2, -3).