IDBRequest

IDBRequest interface of the IndexedDB API provides access to results of asynchronous requests to databases and database objects using event handler attributes. Each reading and writing operation on a database is done using a request.

The request object does not initially contain any information about the result of the operation, but once information becomes available, an event is fired on the request, and the information becomes available through the properties of the IDBRequest 实例。

All asynchronous operations immediately return an IDBRequest instance. Each request has a readyState that is set to the 'pending' state; this changes to 'done' when the request is completed or fails. When the state is set to done , every request returns a result error , and an event is fired on the request. When the state is still pending , any attempt to access the result or error raises an InvalidStateError 异常。

In plain words, all asynchronous methods return a request object. If the request has been completed successfully, the result is made available through the result property and an event indicating success is fired at the request ( IDBRequest.onsuccess ). If an error occurs while performing the operation, the exception is made available through the result property and an error event is fired ( IDBRequest.onerror ).

The interface IDBOpenDBRequest is derived from IDBRequest .

注意: 此特征可用于 Web 工作者 .

特性

Also inherits properties from EventTarget .

IDBRequest.error 只读
返回 DOMException in the event of an unsuccessful request, indicating what went wrong.
IDBRequest.result 只读

Returns the result of the request. If the the request failed and the result is not available, an InvalidStateError exception is thrown.

IDBRequest.source 只读
The source of the request, such as an IDBIndex or an IDBObjectStore . If no source exists (such as when calling IDBFactory.open ), it returns null.
IDBRequest.readyState 只读
The state of the request. Every request starts in the pending state. The state changes to done when the request completes successfully or when an error occurs.
IDBRequest.transaction 只读
The transaction for the request. This property can be null for certain requests, for example those returned from IDBFactory.open unless an upgrade is needed. (You're just connecting to a database, so there is no transaction to return).

方法

No methods, but inherits methods from EventTarget .

Events

监听这些事件使用 addEventListener() 或通过把事件监听器赋值给 on eventname 特性为此接口。

error
Fired when an error caused a request to fail.
Also available via the onerror 特性。
success
Fired when an IDBRequest succeeds.
Also available via the onsuccess 特性。

范例

In the following code snippet, we open a database asynchronously and make a request; onerror and onsuccess functions are included to handle the success and error cases. For a full working example, see our To-do Notifications app ( view example live .)

var db;
// Let us open our database
var DBOpenRequest = window.indexedDB.open("toDoList", 4);
// these two event handlers act on the database being
// opened successfully, or not
DBOpenRequest.onerror = function(event) {
  note.innerHTML += '<li>Error loading database.</li>';
};
DBOpenRequest.onsuccess = function(event) {
  note.innerHTML += '<li>Database initialised.</li>';
  // store the result of opening the database.
  db = DBOpenRequest.result;
};
					

规范

规范 状态 Comment
Indexed Database API 2.0
The definition of 'IDBRequest' in that specification.
Recommendation 初始定义。
Indexed Database API Draft
The definition of 'IDBRequest' in that specification.
Recommendation

浏览器兼容性

更新 GitHub 上的兼容性数据
Desktop Mobile
Chrome Edge Firefox Internet Explorer Opera Safari Android webview Chrome for Android Firefox for Android Opera for Android Safari on iOS Samsung Internet
IDBRequest Chrome 24
24
不支持 2 — 57
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Edge 12 Firefox 16
16
不支持 10 — 16
Prefixed
Prefixed Implemented with the vendor prefix: moz
IE 部分支持 10 Opera 15 Safari 7 WebView Android Yes
Yes
不支持 ? — 57
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Chrome Android 25
25
不支持 25 — 57
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Firefox Android 22 Opera Android 14 Safari iOS 8 Samsung Internet Android 1.5
1.5
不支持 1.5 — 7.0
Prefixed
Prefixed Implemented with the vendor prefix: webkit
error Chrome 24
24
不支持 23 — 57
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Edge 12 Firefox 16
16
不支持 10 — 16
Prefixed
Prefixed Implemented with the vendor prefix: moz
IE 部分支持 10 Opera 15 Safari 7 WebView Android Yes
Yes
不支持 ? — 57
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Chrome Android 25
25
不支持 25 — 57
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Firefox Android 22 Opera Android 14 Safari iOS 8 Samsung Internet Android 1.5
1.5
不支持 1.5 — 7.0
Prefixed
Prefixed Implemented with the vendor prefix: webkit
error event Chrome 24
24
23
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Edge 12 Firefox 16
16
不支持 10 — 16
Prefixed
Prefixed Implemented with the vendor prefix: moz
IE 部分支持 10 Opera 15 Safari 7 WebView Android Yes Chrome Android Yes Firefox Android 22 Opera Android 14 Safari iOS 8 Samsung Internet Android Yes
onerror Chrome 24
24
23
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Edge 12 Firefox 16
16
不支持 10 — 16
Prefixed
Prefixed Implemented with the vendor prefix: moz
IE 部分支持 10 Opera 15 Safari 7 WebView Android Yes Chrome Android Yes Firefox Android 22 Opera Android 14 Safari iOS 8 Samsung Internet Android Yes
onsuccess Chrome 24
24
23
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Edge 12 Firefox 16
16
不支持 10 — 16
Prefixed
Prefixed Implemented with the vendor prefix: moz
IE 部分支持 10 Opera 15 Safari 7 WebView Android Yes Chrome Android Yes Firefox Android 22 Opera Android 14 Safari iOS 8 Samsung Internet Android Yes
readyState Chrome 24
24
23
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Edge 12 Firefox 16
16
不支持 10 — 16
Prefixed
Prefixed Implemented with the vendor prefix: moz
IE 部分支持 10 Opera 15 Safari 7 WebView Android Yes Chrome Android Yes Firefox Android 22 Opera Android 14 Safari iOS 8 Samsung Internet Android Yes
result Chrome 24
24
23
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Edge 12 Firefox 16
16
不支持 10 — 16
Prefixed
Prefixed Implemented with the vendor prefix: moz
IE 部分支持 10 Opera 15 Safari 7 WebView Android Yes Chrome Android Yes Firefox Android 22 Opera Android 14 Safari iOS 8 Samsung Internet Android Yes
source Chrome 24
24
23
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Edge 12 Firefox 16
16
不支持 10 — 16
Prefixed
Prefixed Implemented with the vendor prefix: moz
IE 部分支持 10 Opera 15 Safari 7 WebView Android Yes Chrome Android Yes Firefox Android 22 Opera Android 14 Safari iOS 8 Samsung Internet Android Yes
success event Chrome 24
24
23
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Edge 12 Firefox 16
16
不支持 10 — 16
Prefixed
Prefixed Implemented with the vendor prefix: moz
IE 部分支持 10 Opera 15 Safari 7 WebView Android Yes Chrome Android Yes Firefox Android 22 Opera Android 14 Safari iOS 8 Samsung Internet Android Yes
transaction Chrome 24
24
23
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Edge 12 Firefox 16
16
不支持 10 — 16
Prefixed
Prefixed Implemented with the vendor prefix: moz
IE 部分支持 10 Opera 15 Safari 7 WebView Android Yes Chrome Android Yes Firefox Android 22 Opera Android 14 Safari iOS 8 Samsung Internet Android Yes
Available in workers Chrome Yes Edge ≤79 Firefox 37 IE ? Opera Yes Safari ? WebView Android Yes Chrome Android Yes Firefox Android 37 Opera Android Yes Safari iOS ? Samsung Internet Android Yes

图例

完整支持
完整支持
部分支持
部分支持
兼容性未知
兼容性未知
要求使用供应商前缀或不同名称。
要求使用供应商前缀或不同名称。

另请参阅