2013-05-19 2 views
4

나는 indexedDB 데이터 저장소를 반복하여 JavaScript 배열에 데이터를 추가합니다. 커서가 끝날 때를 어떻게 알 수 있습니까? 배열을 정렬하고 처리 할 수 ​​있습니까?HTML5 IndexedDB 커서가 끝날 때를 알려주는 방법

커서에서 행을 검색 할 때 onsuccess가 호출됩니다. 전체 커서를 탐색 할 때 다른 콜백이 있습니까?

답변

5

성공적인 커서 요청의 결과 (event.target.result)는 커서 개체 또는 null입니다.

event.target.result이 설정되면 커서가 표시되어 event.target.result.value에 액세스 할 수 있습니다. 그런 다음 event.target.result.continue()으로 전화하여 다음 객체로 이동합니다 (있는 경우).

event.target.result이 설정되지 않으면 더 이상 개체가 없습니다.

그림를 들어, 내 프로젝트에서 일부 코드 : (? I 가정의 == 없습니다 =)

var collectObjects = function (request, cb) { 
    var objects = [] 
    request.onsuccess = function (event) { 
     if (!event.target.result) return cb(null, objects) 
     cursor = event.target.result 
     objects.push(cursor.value) 
     cursor.continue() 
    } 
    request.onerror = function (event) { 
     cb(event.target.error) 
    } 
+0

하지 변수 커서가 당신의 예에서 무엇인지는 – ed4becky

+0

나는 그것에 할당하고있어 없음,하지 그런 다음 그것이 있는지 확인하십시오. 이 예제를 가독성을 위해 약간 수정합니다. –

+0

당신은 올바른 방향으로 지적 해주었습니다.이게 효과적이었습니다. if (cursor === false || cursor === undefined) { – ed4becky

관련 문제