Ebből vajon mit szűrsz le?Hát azt, hogy nem értesz hozzá.
Tehát nem indul új szál, amikor IO-t indítunk.Dehogynem, csak a példádban egyelen console.log hívás van bennük, így be is fejeződtek, mire a második ps-t kiadod. Mondtam már, tegyél bele várakozást, hogy pár percig fussanak, és meglátod, faszságokat beszélsz. De tudod mit? Jó, tegyük fel, csak a vicc kedvéért, hogy valóban csak egyetlen szállal operál, és a főciklus nem halad tovább, amíg a connect() le nem fut (de, továbbhalad, de azért most tegyük fel, hogy valóban úgy van, ahogy állítod). Ebben az esetben hol van itt az aszinkron IO? Ha blokkolódik a programod az IO művelet befejeztéig, akkor az - definíció szerint - NEM aszinkron. Szóval teljesen mindegy, melyik az igaz, mivel mindkét esetben tévedtél, és még mindig nem voltál képes példát mutatni aszinkron működésre egyetlen szállal (nem is fogsz soha, mert nem lehetséges).