Why are we so wary of blocking threads anyway?
Ever since I started doing programming, I was always driven to consensus that thread blocking is bad – there are operations that are intrinsically asynchronous and we should create code that respects this condition. So that’s how we get to the callback hell, that’s how Promise API gets invented, that’s how Rx appears, that’s how async-await was popularized via C#, etc.