So the "process" waits here until the promises are all fulfilled? 
I think I got it, promises are a way to implement something close to mutex locks like some other languages which support multi-threading.