new Promise(resolve=>
{
let request=indexedDB.open("vector",1);
let db;
request.addEventListener("success",event=>
{
db=event.target.result;
resolve(db);
});
request.addEventListener("upgradeneeded",event=>
{
const db=event.target.result;
if(db.objectStoreNames.contains("xy"))
db.deleteObjectStore("xy");
db.createObjectStore("xy",{keyPath:"x"});
});
}).then(db=>
{
let transaction=db.transaction("xy","readwrite");
transaction.addEventListener("error",()=>console.log("事务失败"));
transaction.addEventListener("complete",()=>console.log("事务成功"));
let store=transaction.objectStore("xy");
// const request2=store.add({
// x:"999",
// y:"111"
// });
// request2.addEventListener("error",()=>console.log("存储失败"));
// request2.addEventListener("success",()=>console.log("存储成功"));
const request3=store.get("22222");
request3.addEventListener("error",()=>console.log("get请求失败"));
request3.addEventListener("success",event=>
{
console.log(event.target.result);
console.log("get请求成功");
});
});
在我第一次存储的时候,都是成功的,这没问题。
但是在我第二次运行的时候,
// const request2=store.add({
// x:"999",
// y:"111"
// });
// request2.addEventListener("error",()=>console.log("存储失败"));
// request2.addEventListener("success",()=>console.log("存储成功"));
我把这段代码注释了,此时本地存储应该只有X 999 Y 111
可是get返回了请求成功为什么?