Allows async functions to handle callbacks and promises.
Creates callback which expses a promise.