에이 코드를 마칩니다. 이 함수는 특정 값이 존재하는지 확인하기 위해 객체 저장소에서 반복 할 커서를 엽니 다.기다립니다 색인화
사실, 오류는 없지만 변수 값이 절대로 변경되지 않기 때문에 if (!isExisting)
안에있는 코드에 도달 할 수 없습니다.
function IsAlreadyExist(foo){
var db = html5DB.indexedDB.db;
var objectStore = db.transaction("something").objectStore("something");
objectStore.openCursor().onsuccess = function(event) {
var cursor = event.target.result;
if (cursor) {
if (cursor.value.text == foo)
return true;
cursor.continue();
}
};
return false;
}
실행의 종료를 기다리는 방법이있다 :
이것은 그 초 함수의 코드는? 또는 값이 존재하는지 확인하기 위해 진행하는 것이 좋은 방법이 아닌가?
완벽하게 작동했습니다. 감사합니다. 이 오류가 발생했습니다 :'Uncaught TransactionInactiveError : 트랜잭션이 완료되었습니다. ' 수정하기 위해'addSomething' 함수의 처음 3 행을'store.put' 바로 위에 놓았습니다. 그런 식으로 거래가 완료 될 시간이있었습니다. – Freelex
하하하. 콜백 안에'put' 콜을위한 트랜잭션을 옮겨야합니다. –
당신이 구세주라는 것을 반영하도록 코드를 수정했습니다. 나는 비동기를 기다리고 있지만 작동하지 않습니다. 이 기본 콜백은 작동 중입니다. 감사. 한 오타가 있습니다. 콜백 함수 이름은 oncomplete이어야합니다 ** d ** ..'function IsAlreadyExist (foo, oncompleted)' –