Skip to content

Instantly share code, notes, and snippets.

@ehzawad
Created July 28, 2023 13:32
Show Gist options
  • Select an option

  • Save ehzawad/63b14442bf2da79723f3424974a62484 to your computer and use it in GitHub Desktop.

Select an option

Save ehzawad/63b14442bf2da79723f3424974a62484 to your computer and use it in GitHub Desktop.
yay, call stack!
setTimeout(() => console.log(1));
Promise.resolve().then(() => console.log(2));
Promise.resolve().then(() => setTimeout(() => console.log(3)));
new Promise(() => console.log(4));
setTimeout(() => console.log(5));
console.log(6);
@ehzawad

ehzawad commented Jul 30, 2023

Copy link
Copy Markdown
Author
console.log(0);

setTimeout(() => console.log(1));

Promise.resolve().then(() => console.log(2));
Promise.resolve().then(() => console.log(3));

Promise.resolve().then(() => setTimeout(() => console.log(4)));
Promise.resolve().then(() => setTimeout(() => console.log(5))).then(() => setTimeout(() => console.log(6)));
Promise.resolve().then(() => setTimeout(() => console.log(7))).then(() => console.log(8));

setTimeout(() => console.log(9));

(() => console.log(4))()

@ehzawad

ehzawad commented Jul 30, 2023

Copy link
Copy Markdown
Author
console.log(0);

setTimeout(() => console.log(1));

Promise.resolve().then(() => console.log(2));
Promise.resolve().then(() => console.log(3));

Promise.resolve().then(() => setTimeout(() => console.log(4))).then(() => console.log(5));
Promise.resolve().then(() => setTimeout(() => console.log(6))).then(() => console.log(7));
Promise.resolve().then(() => setTimeout(() => console.log('a'))).then(() => console.log('b'));

setTimeout(() => console.log(9));

(() => console.log('x'))()

@ehzawad

ehzawad commented Jul 31, 2023

Copy link
Copy Markdown
Author
console.log(0);

(async () => {
  console.log('x');
  
  await Promise.resolve().then(() => console.log(2));
  await Promise.resolve().then(() => console.log(3));
  
  await Promise.resolve().then(() => Promise.resolve()).then(() => console.log(5));
  await Promise.resolve().then(() => Promise.resolve()).then(() => console.log(7));
  await Promise.resolve().then(() => Promise.resolve()).then(() => console.log('b'));
})();

setTimeout(() => console.log(1));

setTimeout(() => console.log(9));

await new Promise(resolve => setTimeout(() => {
  console.log(4);
  resolve();
}));

await new Promise(resolve => setTimeout(() => {
  console.log(6);
  resolve();
}));

await new Promise(resolve => setTimeout(() => {
  console.log('a');
}));

@ehzawad

ehzawad commented Jul 31, 2023

Copy link
Copy Markdown
Author
console.log(0);

(() => {
  console.log('x');
  
  Promise.resolve().then(() => console.log(2));
  Promise.resolve().then(() => console.log(3));
  
  Promise.resolve().then(() => Promise.resolve()).then(() => console.log(5));
  Promise.resolve().then(() => Promise.resolve()).then(() => console.log(7));
  Promise.resolve().then(() => Promise.resolve()).then(() => console.log('b'));
})();

setTimeout(() => console.log(1));

setTimeout(() => console.log(9));

new Promise(resolve => setTimeout(() => {
  console.log(4);
  resolve();
}));

new Promise(resolve => setTimeout(() => {
  console.log(6);
  resolve();
}));

new Promise(resolve => setTimeout(() => {
  console.log('a');
}));

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment