Сергей Мелодин, не заблокирует, так как он вне асинхронного контекста и все асинхронные вызовы в колбеке это лишь промисы, которые помещаются в ячейки и ждут своей участи.
function a() {
return new Promise(r => setTimeout(() => {console.log(1)}, 2000))
}
[1,2,3,4,5].map(async () => await a());
console.log(2);
// вывод будет
2
// спустя 2 сек
1
1
1
1
1
А причем тут map и асинхронность? Она не в асинхронном контексте. Каждый элемент массива будет заменен на результат выполнения функции. Если она асинхронная, то каждый элемент будет промисом, и разрешится когда-то там. Функция map свое дело сделала и ей пофигу на все остальное.
Лично мне от пхп хочется современных фишек, удобства и замыканий у которых область видимости такая-же как и у контекста, где они вызываются. Знак $ раздражает, а деваться некуда.
Тот-же js в этом плане на несколько голов выше, поэтому он мегапопулярный. Использовать все самое свежее можно здесь и сейчас, писать на приглянувшимся диалекте и не думать об обратной совместимости, так как все транслируется.