C'est probablement parce que tu n'as pas vu la notion de promesse. 
Je connais les promises, t'inquiète pas
La difficulté, c'est de savoir s'en servir à bon escient... Et le problème, c'est que tant que tu ne te retrouves pas en production avec une montée en charge de malade et/ou une bande passante qui fait de la corde à sauter, il est parfois difficile d'anticiper ce qui va merder quand tu bosses en full asynchrone... M'enfin, c'est mon avis. Et c'est pas non plus ce qui me casse le plus la tête.
C'est probablement parce que tu n'as pas vu la notion de Javascript. 
A part NodeJS (vanilla et framework Express), je ne connais Javascript que côté client (vanilla + libs JQuery et ThreeJS, frameworks VueJS, AngularJS, Angular 2 et 4 + un projet en Typescript sous Angular2).
Donc oui, forcément, on n'est de toute façon pas tout à fait confronté aux mêmes problématiques quand on passe de JS côté client à JS côté serveur...