Promises are containers holding async values inside. Let's compare them with arrays. An array
holds multiple values (or a single non-deterministic value one could say...) while a promise holds a
single value or an error. You can extract a value from an array but not from a promise. Those differences
aren't that important in many contexts so accepting an idea that promises are containers is crucial.