В этой задаче участвуют три функции, планирующие задачи:
setTimeout
планирует task (macrotask);queueMicrotask
планирует microtask;requestAnimationFrame
планирует animation callback.Что выведется в консоль?
На проверку нужно отправить функцию, возвращающую массив с буквами в том порядке, в котором они выводятся в консоль.
setTimeout(() => { console.log("A"); requestAnimationFrame(() => { queueMicrotask(() => { requestAnimationFrame(() => { console.log("B"); }); queueMicrotask(() => { console.log("C"); }); console.log("D"); }); console.log("E"); }); }); queueMicrotask(() => { console.log("F"); queueMicrotask(() => { console.log("G"); }); }); requestAnimationFrame(() => { console.log("H"); queueMicrotask(() => { console.log("I"); setTimeout(() => { console.log("J"); queueMicrotask(() => { console.log("K"); setTimeout(() => { console.log("L"); }); }); }); }); queueMicrotask(() => { console.log("M"); requestAnimationFrame(() => { console.log("N"); }); }); }); requestAnimationFrame(() => { queueMicrotask(() => { console.log("O"); }); console.log("P"); });