Как удалить ключ / значение внутри поля значения с помощью Dexie.js?
У меня есть строка с таким значением, как показано ниже:
{
"id": 1,
"token": "abcd"
}
Как мне удалить и сохранить значение без "токена", чтобы оно стало таким?
{
"id": 1
}
Нужно ли мне сначала получить объект, изменить его, а затем сохранить обратно?
1 ответ
Решение
Может быть, это вам поможет:
function patch(db, id, delta) {
return new Promise((resolve, reject) => {
const tx = db.transaction('mystore', 'readwrite');
tx.onerror = (event) => reject(event.target.error);
tx.oncomplete = () => resolve();
const store = tx.objectStore('mystore');
const request = store.get(id);
request.onsuccess = (event) => {
const object = event.target.result;
if (!object) {
reject(new Error(`No matching object for ${id}`));
return;
}
for (const prop in delta) {
if (typeof delta[prop] === 'undefined') {
delete object[prop];
} else {
object[prop] = delta[prop];
}
}
store.put(object);
};
});
}
async function dostuff() {
let db;
const id = 1;
const delta = {
token: undefined
};
try {
db = await connect();
await patch(db, id, delta);
} finally {
if (db) {
db.close();
}
}
}