const opts = {label: 'p', join: 'replace'};
const $a = new Async();
async function foo(mark, promise) {
await $a.promise(promise, opts);
console.log(mark);
}
foo('a', new Promise((resolve) => queueMicrotask(resolve)));
foo('b', new Promise((resolve) => queueMicrotask(resolve)));
В консоль будет выведено: b и a. Ожидается, что поток a должен зарезолвится раньше, чем b.