Exploring Promise-Based Output Queries

Promises Output Questions

1. What is the output of this code?

console.log("A");

setTimeout(() => {
  console.log("B");
}, 1000);

console.log("C");

setTimeout(() => {
  console.log("D");
}, 0);

console.log("E");
Click to see the output
A
C
E
D
B

2. What is the output of this code?

console.log("A");
Promise.resolve().then(() => console.log("B"));
console.log("C");
Click to see the output
A
C
B

3. What is the output of this code?

async function foo() {
  console.log("A");
  await Promise.resolve();
  console.log("B");
}
foo();
console.log("C");
Click to see the output A C B

4. What is the output of this code?

setTimeout(() => console.log("A"), 0);
Promise.resolve().then(() => console.log("B"));
console.log("C");
Click to see the output C B A

5. What is the output of this code?

const promise = new Promise((resolve, reject) => {
  console.log("A");
  resolve("B");
});
promise.then((res) => console.log(res));
console.log("C");
Click to see the output A C B

6. What is the output of this code?

const promise = new Promise((resolve, reject) => {
  console.log("A");
  resolve("B");
});
promise.then((res) => console.log(res));
setTimeout(() => console.log("C"), 0);
console.log("D");
Click to see the output A D B C

7. What is the output of this code?

console.log("A");
setTimeout(() => console.log("B"), 1000);
setTimeout(() => console.log("C"), 0);
console.log("D");
Click to see the output A D C B

8. What is the output of this code?

async function test() {
  console.log("A");
  await new Promise((resolve) => setTimeout(resolve, 1000));
  console.log("B");
}
test();
console.log("C");
Click to see the output A C B

9. What is the output of this code?

function foo() {
  return new Promise((resolve) => {
    setTimeout(() => resolve("A"), 1000);
  });
}
foo().then((res) => console.log(res));
console.log("B");
Click to see the output
B
A

10. What is the output of this code?

console.log("A");
setTimeout(() => console.log("B"), 0);
Promise.resolve().then(() => console.log("C"));
console.log("D");
Click to see the output
A
D
C
B

11. What is the output of this code?

async function foo() {
  console.log("A");
  const res = await Promise.resolve("B");
  console.log(res);
}
foo();
console.log("C");
Click to see the output A C B

12. What is the output of this code?

setTimeout(() => console.log("A"), 0);
Promise.reject("B").catch((err) => console.log(err));
console.log("C");
Click to see the output
C
B
A

13. What is the output of this code?

async function foo() {
  try {
    console.log("A");
    throw new Error("B");
  } catch (err) {
    console.log(err.message);
  }
  console.log("C");
}
foo();
Click to see the output
A
B
C

14. What is the output of this code?

console.log("A");
setTimeout(() => console.log("B"), 0);
Promise.resolve().then(() => {
  console.log("C");
  setTimeout(() => console.log("D"), 0);
});
console.log("E");
Click to see the output A E C B D

15. What is the output of this code?

console.log("A");
setTimeout(() => console.log("B"), 0);
setTimeout(() => console.log("C"), 1000);
console.log("D");
Click to see the output A D B C

16. What is the output of this code?

Promise.resolve()
  .then(() => {
    console.log("A");
    return Promise.resolve("B");
  })
  .then((res) => console.log(res));
console.log("C");
Click to see the output C A B

17. What is the output of this code?

async function foo() {
  console.log("A");
  return "B";
}
foo().then((res) => console.log(res));
console.log("C");
Click to see the output
A
C
B

18. What is the output of this code?

console.log("A");
Promise.resolve().then(() => {
  console.log("B");
  setTimeout(() => console.log("C"), 0);
});
console.log("D");
Click to see the output A D B C

19. What is the output of this code?

async function foo() {
  console.log("A");
  return new Promise((resolve) => setTimeout(() => resolve("B"), 1000));
}
foo().then((res) => console.log(res));
console.log("C");
Click to see the output A C B

20. What is the output of this code?

console.log("A");
Promise.reject("B").catch((err) => console.log(err));
Promise.resolve().then(() => console.log("C"));
console.log("D");
Click to see the output
A
D
B
C