When an object is returned from an asynchronous function something automatically accesses the .then property of that object. Why does this happen?