【发布时间】:2021-01-25 12:22:29
【问题描述】:
我有一个类,其中一些属性不应该存储到 indexedDB 存储中。当我克隆对象并随后删除属性时它可以工作,但是我不太喜欢这个解决方案。我想知道是否有一种解决方案,我们只是将属性设置为私有,因此在写入 indexedDB 存储时不应包含该属性。
我尝试了以下方法: 我在我的类中使用了一个符号作为属性,并通过 get/set 我修改了属性,但是当我尝试将对象存储到 indexedDB 存储时,我收到以下错误:IndexedDB 错误:无法克隆 IDBObjectStore 符号
这是一个示例代码:
var request = indexedDB.open('test', 2);
request.onerror = function(event) {
// Handle errors.
};
request.onupgradeneeded = function(event) {
var db = event.target.result;
// Create an objectStore to hold information about our customers. We're
// going to use "ssn" as our key path because it's guaranteed to be
// unique.
var objectStore = db.createObjectStore("customers", {
keyPath: 'id'
});
var mystring = "Hello World"
var myblob = new Blob([mystring], {
type: 'text/plain'
});
var file = new File([myblob], 'test');
var a = Symbol('a');
var obj = {
id: 'foo',
b: a
};
obj[a] = file;
objectStore.add(obj);
};
【问题讨论】:
标签: javascript indexeddb