Promise: uses duck-typing to check if data is a Promise (no instanceof)