What is the output of this event loop example?

Easy event loop question.

console.log('A');
setTimeout(() => console.log('B'), 0);
Promise.resolve().then(() => console.log('C'));
console.log('D');

What is the exact output order.

Quelly

A, D, C, B.

Ellen