Please have a look at code below:
setTimeout(() => {console.log('A')}, 3000);
setTimeout(() => {console.log('B')}, 1000);
setTimeout(() => {console.log('C')}, 500);
since setTimeout adds message to message queue and messages are FIFO queue, and one message needs to finish before next one may start, I expect to see A B C order but I see C B A.
It means that I do not understand something here. What is it that I do not understand?