DEV Community

Cover image for Guess the output
chandra penugonda
chandra penugonda

Posted on • Edited on

Guess the output

This problem was asked by Amazon.

What does the code snippet to the right output by console.log?

console.log(1)
const promise = new Promise((resolve) => {
  console.log(2)
  resolve()
  console.log(3)
})

console.log(4)

promise.then(() => {
  console.log(5)
}).then(() => {
  console.log(6)
})

console.log(7)

setTimeout(() => {
  console.log(8)
}, 10)

setTimeout(() => {
  console.log(9)
}, 0)
Enter fullscreen mode Exit fullscreen mode

output

1
2
3
4
7
5
6
9
8
Enter fullscreen mode Exit fullscreen mode

Explanation

  • The synchronous code runs first. So 1, 2, 3, 4 , 7 are logged immediately.
  • 5 and 6 are logged after 7 since they are in .then() handlers.
  • 9 is logged before 8 since the timeout of 0 ms happens sooner than 10 ms.
  • Promises and timeout callbacks are asynchronous which is why they run after the sync code.

Top comments (0)