프로그램/html

html5 indexeddb insert with promise

milktea.kang 2021. 5. 14. 13:14
let promise = new Promise(async (resolve,reject) => {
    let tx:IDBTransaction = this.idb.transaction([this.tbNameRow,this.tbNameSchedule],"readwrite");
    tx.oncomplete = () => {
        resolve(listItem);
    };
    tx.onerror = (err) => {
        reject(listItem);
    };
    let tbRow = tx.objectStore(this.tbNameRow);
    let tbSchedule = tx.objectStore(this.tbNameSchedule);
    tbRow.clear();
    tbSchedule.clear();
    if(listItem){
        let sizeListItem = listItem.length;
        for(let a=0;a<sizeListItem;a++){
            let item = listItem[a];
            let scheduleRow = JSON.parse(JSON.stringify(item));
            scheduleRow.id = `${item.userId}-${item.regDt.replace(/[\s:]+/g,"-")}`;

            let scheduleItem = JSON.parse(JSON.stringify(item));
            scheduleItem.import(item);
            scheduleItem.id = `${item.userId}-${item.regDtFrom.replace(/[\s:]+/g,"-")}`;
            scheduleItem.idRow = scheduleRow.id;

            tbSchedule.put(scheduleItem);
            tbRow.add(scheduleRow);
        }
    }
});
return promise;