如何使用Dart打开IndexedDB数据库?

Set*_*add 2 indexeddb dart

如何使用IndexedDB和Dart打开数据库?API与Jav​​aScript不完全相同.

Set*_*add 7

新的IndexedDB API使用Dart对Streams和Futures的支持.以下是使用Dart M3或更高版本打开IndexedDB数据库的方法:

import 'dart:html';
import 'dart:indexed_db';
import 'dart:async';

Future<Database> openDatabase(String dbName, String storeName, {int version:1}) {
  return window.indexedDB.open(dbName, version: version,
    onUpgradeNeeded: (e) {
      Database db = e.target.result;
      if (!db.objectStoreNames.contains(storeName)) {  
        db.createObjectStore(storeName);
      }
    });
}

main() {
  openDatabase('test-db', 'test-store').then((Database db) {
    // do database stuff
  });
}
Run Code Online (Sandbox Code Playgroud)

在此代码中,window.indexedDB.open调用返回a Future<Database>,该数据在打开时完成.

onUpgradeNeeded当数据库的版本与指定的版本不匹配时,将运行该函数.