0
나는 항목 목록을 가지고 있으며 각 항목에는 지침 목록이 있습니다. 각 항목은 하나의 페이지를 차지하고 로컬로 저장된 각 명령과 함께 PDF 파일로 인쇄됩니다. 이제는 각 항목의 지침에 대해 데이터베이스를 쿼리하고 PDF 파이프를 경로로 채운 후 for 루프를 작성했습니다. 문제는 쿼리가 비동기식이기 때문에 파이프 된 마지막 PDF 만 열리 며 나머지는 손상된 것입니다. 어떻게 극복합니까? 내 코드는 아래와 같습니다.PDFKIT 루프로 여러 PDF 파일을 파이핑
var counter = 0
for (var o=0; o<itemList.length; ++o){
Steps.find({itemid:itemid[o], sort: "sequence asc"}).exec(function(err,steps){
doc[counter] = new PDFDocument();
if(!err){
doc[counter].pipe(fs.createWriteStream(path + "DocName" + counter + ".pdf"));
for (var x=0; x<steps.length; ++x){
doc[counter].text("Instructions: " + steps[x].instruction.font('Times-Roman', 13);
}
***/*if (counter == itemList.length-1){
doc[counter].end();
}*/***
//That is the problem, i shouldn't have done the check and end the doc immediately, that solved the issue.
doc[counter].end();
++counter;
}
}
}
'callback','promise' 또는'async/await' 중 하나를 사용하십시오. 인기있는 라이브러리는 [async] (http://caolan.github.io/async/), [bluebird] (http://bluebirdjs.com/docs/getting-started.html)입니다. 어떤 노드 버전을 사용하고 있습니까? – Sangharsh
또한 http://stackoverflow.com/q/14220321/1435132를 확인하십시오. – Sangharsh