2016-07-15 1 views
0

웹 사이트의 결과와 함께 로컬 PouchDB를로드하려고 시도하고 있습니다. 결과가 로컬에로드되면 다시 다운로드하는 것을 원하지 않습니다.pouchDB allDocs 원래 쿼리를 검색하십시오.

이 문제를 방지하려면 존재하는 파일의 목록을 가져온 다음 이전에 파일을 가져 오기 전에로드했는지 테스트하십시오.

function DownloadFile($fname){ 
     $query = { 
      include_docs: false, 
      attachments: false, 
      startkey: ['run',$fname].join(','), 
      endkey: ['run',$fname,'\uffff'].join(',') 
     }; 
     db.allDocs($query).then(function (result) { 
      if (result.rows.length !== 0) return; 
      $url = './runDb/' + $fname + '/results.xml'; 
      $.ajax({ 
       url: $url, 
       type: "GET", 
       dataType: "xml", 
       contentType: "text/xml", 
       async: true, 
       success: function (results,status,xhr) { 
        app.ParseResults($fname,results) 
       } 
      }); 
     }).catch(function (err) { 
      console.log(err); 
     }); 
} 

오전 데 문제가 allDocs 쿼리가 마침내 뭔가를 반환하는 시간 DownloadFile GET의 전화 100 번으로하고, 나는 더 이상 아무 결과도 반환되지 원래의 어떤 쿼리 알고 없다.

주어진 결과 집합을 생성하는 데 사용 된 쿼리 매개 변수를 결정하는 PouchDb의 방법이 있습니까?

편집 : 나는 받아 들인 대답을 정말 좋아하지만, 이것은 바보 같은 질문이었습니다. 실험 (브라우저에서)은 $query$fnameallDocs 호출을 시작한 특정 호출에 대해 유효 범위 값을 포함한다는 것을 나타냅니다.

즉, 실제로 아무 것도 할 필요가 없으며 단지 작동합니다. 분명히 이것은 JS 구현에 크게 의존하므로 받아 들여지는 대답은 원하는 것에 대해 명시 적이기 때문에 더 좋습니다.

+0

저는 종종 어두운 범위의 자바 스크립트 변수 범위 지정과 그저 처리하는 이상한 시나리오에 놀랐습니다. –

답변

1

이것은 PouchDB와 관련이 없으며 모든 종류의 유사한 경우에 사용할 수있는 솔루션입니다.

아래의 대답은 올바른 Promise 개체가있는 것으로 가정합니다.