By default, log to console.error if any Promise was uncaught. #206
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Before, it was nescessary to always explicitely add a line like this somewhere in your bootstrapping code, or you could have issues debugging your code:
But with this change, you don't need to do that anymore unless you'd like to show those errors somewhere else than in the console. Dexie.Promise will by default log any uncaught promise rejection. An exception from this rule is when you do stuff in a transaction scope. You never have to catch those operations but can instead catch the Promise that results from the transaction.
When writing this change, I noticed that Promise.on('error') was actually logging too much. Even though I was catching errors, the event subscriber would sometimes be triggered anyway. So this issue had to be dealt with, resulting in some changes in the Promise class and also in Dexie's transaction method.
Another change from before is that there can only be one subscriber to Promise.on('error'). So if you subscribe to it, the default subscriber wont log anymore, but if you unsubscribe, the default handler will start logging again. If another subscriber was present, also that subscriber will not be triggered anymore until you unsubscribe. This is reasonable because if you subscribe to that error event, the error should not be considered "uncaught" anymore since you now have a chance to handle it.