☝️
dexie.js
TypogramDexie.js
  • Docs Home
    • Indexable Type
    • Inbound
    • IndexedDB on Safari
    • IndexSpec
    • MultiEntry Index
    • Questions and Answers
    • liveQuery()
    • Safari-related issues
    • Releasing Dexie
    • Samples
    • Simplify with yield
    • How To Use the StorageManager API
    • Table Schema
    • The main limitations of IndexedDB
    • Typescript
    • Deprecations
    • Compound Index
    • Derived Work
    • Download
    • Dexie.js
    • Export and Import Database
  • API Reference
  • Tutorial
    • Hello World
    • Understanding the basics
    • Best Practices
    • Methods for Extending Dexie
    • Consuming Dexie as a module
    • Design
    • Migrating existing DB to Dexie
    • Get started with Dexie in Svelte
    • Get started with Dexie in Angular
    • Get started with Dexie in React
    • Get started with Dexie in Vue
  • Collection
    • Collection.and()
    • Collection.clone()
    • Collection.count()
    • Collection.delete()
    • Collection.desc()
    • Collection.distinct()
    • Collection.each()
    • Collection.eachKey()
    • Collection.eachPrimaryKey()
    • Collection.eachUniqueKey()
    • Collection.filter()
    • Collection.first()
    • Collection.keys()
    • Collection.last()
    • Collection.limit()
    • Collection.modify()
    • Collection.offset()
    • Collection.or()
    • Collection.primaryKeys()
    • Collection.raw()
    • Collection.reverse()
    • Collection.sortBy()
    • Collection.toArray()
    • Collection.uniqueKeys()
    • Collection.until()
  • Table
    • Table.name
    • Table.mapToClass()
    • Table.offset()
    • Table.orderBy()
    • Table.put()
    • Table.reverse()
    • Table.toArray()
    • Table.schema
    • Table.toCollection()
    • Table.update()
    • Table.add()
    • Table.where()
    • Table.bulkAdd()
    • Table.bulkDelete()
    • Table.bulkGet()
    • Table.bulkPut()
    • Table.bulkUpdate()
    • Table.clear()
    • Table.count()
    • Table.delete()
    • Table.defineClass()
    • Table.each()
    • Table.get()
    • Table.filter()
    • Table.hook('creating')
    • Table.hook('deleting')
    • Table.hook('reading')
    • Table.hook('updating')
    • Table.limit()
  • Version
    • Version.stores()
    • Version.upgrade()
  • Dexie
    • Dexie.ignoreTransaction()
    • Dexie.isOpen()
    • Dexie.name
    • Dexie.on()
    • Dexie.on.blocked
    • Dexie.on.close
    • Deprecated
    • Dexie.on.populate-(old-version)
    • Dexie.on.populate
    • Dexie.on.ready
    • Dexie.on.storagemutated
    • Dexie.on.versionchange
    • Dexie.open()
    • Dexie.override()
    • Dexie.semVer
    • Dexie.setByKeyPath()
    • Dexie.shallowClone()
    • Dexie.spawn()
    • Dexie.table()
    • Dexie.transaction()-(old-version)
    • Dexie.tables
    • Dexie.transaction()
    • Dexie.verno
    • Dexie.use()
    • Dexie.version()
    • Dexie.version
    • Dexie.vip()
    • Dexie.waitFor()
    • Dexie.[table]
    • Dexie.addons
    • Dexie.backendDB()
    • Dexie.async()
    • Dexie.currentTransaction
    • Dexie.debug
    • Dexie.defineClass()
    • Dexie.deepClone()
    • Dexie.delByKeyPath()
    • Dexie.derive()
    • Dexie.events()
    • Dexie.exists()
    • Dexie.delete()
    • Sample
    • Dexie.fakeAutoComplete()
    • Dexie.getByKeyPath()
    • Dexie.getDatabaseNames()
    • Dexie.hasFailed()
  • DexieError
    • Dexie.NotFoundError
    • Dexie.OpenFailedError
    • Dexie.PrematureCommitError
    • Dexie.QuotaExceededError
    • Dexie.ReadOnlyError
    • Dexie.SchemaError
    • Dexie.SubTransactionError
    • Dexie.TimeoutError
    • Dexie.TransactionInactiveError
    • Dexie.UnsupportedError
    • Dexie.UnknownError
    • Dexie.UpgradeError()
    • Dexie.VersionChangeError
    • Dexie.VersionError
    • Dexie.AbortError
    • Dexie.BulkError
    • Dexie.ConstraintError
    • Dexie.DatabaseClosedError
    • Dexie.DataError
    • Dexie.DataCloneError
    • Dexie.IncompatiblePromiseError
    • Dexie.InternalError
    • Dexie.InvalidArgumentError
    • Dexie.InvalidAccessError
    • Dexie.InvalidStateError
    • Dexie.InvalidTableError
    • Dexie.MissingAPIError
    • Dexie.ModifyError
    • Dexie.NoSuchDatabaseErrorError
  • Transaction
    • Transaction.on.abort
    • Transaction.abort()
    • Transaction.on.complete
    • Transaction.on.error
    • Transaction.table()
  • WhereClause
    • WhereClause.anyOf()
    • WhereClause.anyOfIgnoreCase()
    • WhereClause.aboveOrEqual()
    • WhereClause.belowOrEqual()
    • WhereClause.below()
    • WhereClause.between()
    • WhereClause.equals()
    • WhereClause.equalsIgnoreCase()
    • WhereClause.inAnyRange()
    • WhereClause.noneOf()
    • WhereClause.startsWith()
    • WhereClause.notEqual()
    • WhereClause.startsWithAnyOf()
    • WhereClause.startsWithAnyOfIgnoreCase()
    • WhereClause.startsWithIgnoreCase()
    • WhereClause.above()
  • Promise
    • Promise.catch()
    • Promise.finally()
    • Description
    • Promise.onuncatched
    • Promise.PSD
    • unhandledrejection-event
  • DBCore
    • DBCoreGetRequest
    • DBCoreIndex
    • DBCoreGetManyRequest
    • DBCoreMutateRequest
    • DBCoreMutateResponse
    • DBCoreKeyRange
    • DBCorePutRequest
    • DBCoreQuery
    • DBCoreQueryRequest
    • DBCoreOpenCursorRequest
    • DBCoreQueryResponse
    • DBCoreRangeType
    • DBCoreSchema
    • DBCoreTable
    • DBCoreTableSchema
    • DBCoreTransaction
    • DBCoreTransactionMode
    • DBCoreAddRequest
    • DBCoreCursor
    • DBCoreCountRequest
    • DBCoreDeleteRangeRequest
    • DBCoreDeleteRequest
  • Syncable
    • db.syncable.on('statusChanged')
    • db.syncable.list()
    • db.syncable.setFilter()
    • Dexie.Syncable.IDatabaseChange
    • Dexie.Syncable.IPersistentContext
    • Dexie.Syncable.ISyncProtocol
    • Dexie.Syncable.registerSyncProtocol()
    • Dexie.Syncable.Statuses
    • Dexie.Syncable.StatusTexts
    • db.syncable.delete()
    • db.syncable.disconnect()
    • db.syncable.getOptions()
    • db.syncable.getStatus()
Powered by GitBook
On this page
  1. Promise

Promise.onuncatched

Called if the promise wasn't caught.

Deprecated. This event is deprecated and obsolete since 4.x

Sample

var p = new Promise(function (resolve, reject) {
    reject("Failed!");
});
p.onuncatched = function (e) {
    alert ("No-one caught this error: " + e);
}

Result:

Since neither then(x, f), catch(f) or finally(f) was called with a valid function f, the alert would be fired.

How this is used in Dexie

Dexie uses this event on all returned promises from any DB operation on a Transaction in order to make sure error is propagated to the transaction and that transaction is aborted.

PreviousDescriptionNextPromise.PSD