A promise is just an interface. Any object can implement the API and as such provide promise functionality.
The disadvantage is that your code is less flexible/composable if you rely on the added functionality. Other functions must know about and return such an "extended promise", they cannot just return any promise.