The value that may or may not be a promise
The callback to call with the value returned when the promise is resolved or when the value is returned directly.
If the function is async
If async is true it will run maybePromise.then(callback), otherwise it will run callback(maybePromise). If your async param is wrong, the behavior is not guaranteed and may change inside major versions
A shortcut function to help with processing values that may or may not be promises but you know which