Ваши три обещанных setTimeouts не зависят друг от друга.
Тот факт, что человек отвергает, не имеет отношения к двум, которые решают. Каждый из трех конструкторов обещаний будет выполняться независимо от того, что происходит в любом из остальных, и будет делать это независимо от того, объединяются ли обещания с Promise.all()
.
Агрегирование с Promise.all()
рассматривает окончательное урегулирование обещаний, не затрагивая (обычно асинхронные) действия, которые привели к их урегулированию.
Учитывая все это (и значения времени, передаваемые в setTimeouts), должно быть (я надеюсь) не удивительно, что вы видите:
- ДВА (через 1 секунду)
- Один чувак (через 3 секунды)
- Три чувака (через 4 секунды)