The answer is in the documentation, right after the two lines you quoted:
The open method returns a modal instance, an object with the following properties:
- close(result) – a method that can be used to close a modal, passing a result
- dismiss(reason) – a method that can be used to dismiss a modal, passing a reason
- result – a promise that is resolved when a modal is closed and rejected when a modal is dismissed
The important bit here being what happens to the promise. On close, the promise is resolved – essentially, the “success” callback fires. On dismiss, the promise is rejected, therefore running the “failure” callback instead.