В общем, не полагайтесь на какой-либо алгоритм планирования, если вам требуется определенный порядок, сделайте его явным.

function sleep(ms) {
  return new Promise(resolve => setTimeout(resolve, ms));
}

let p = sleep(50);

p.then(() => console.log('a')).then(() => console.log('c'));
p.then(() => console.log('b')).then(() => console.log('d'));

тируется ли это печать «a, b, c, d» в таком порядке?

Насколько я могу судить, «a» должен сработать до «c», а «b» - до «d», но может ли интерпретатор JS решить выполнить оставшуюся часть в другом порядке?

Ответы на вопрос(2)

Ваш ответ на вопрос