Provides a standard interface for async APIs that supports promises, callbacks and catches errors properly