2014-12-18 1 views
0

node.js 내에서 oriento 모듈을 사용하여 OrientDB에 액세스합니다. 원칙적으로 모든 것이 잘 작동하지만, 프로그램 dos가 반드시 종료되지 않아야합니다. 다음은 그 예입니다.oriento가있는 노드 프로그램이 선택 후 종료되지 않습니다.

const oriento = require("oriento"); 
const server = oriento({}); 
const db = server.use(dbname); 
db.select("@rid").from("codelists").limit(1).scalar().then(function (result) { 
    console.dir(result); 
}).finally(function() { 
    db.close(); 
    server.close(); 
    console.info("finished"); 
}); 

programm는 select, then 및 finally를 실행합니다. 괜찮아. 그러나 그것은 끝나지 않습니다. 이벤트 루프에 매달려있는 것 같습니다. 근데 뭐? 어떻게 내가 그걸 없앨 수 있니? 문제는 실제로 나빠질 수 있습니다. "Ctrl-C를 누르거나"process.exit()를 사용하면 코드가 단위 테스트 내에서 실행되기 때문에 모든 것이 끝났을 때 문제가 발생합니다. 여기서 exit를 호출 할 수 없습니다. 어떤 제안?

+1

여기서는 블루 버드 나 약속이 없습니다. –

답변

0

process._getActiveRequests()process._getActiveHandles()을 사용하면 앱을 보유하고있는 것을 볼 수 있습니다. 문서화되지 않았지만 일반적으로이 시나리오에서 사용됩니다.

+0

예, 감사합니다. 활성 요청과 활성 핸들을 볼 수 있습니다. 그러나 이것을 더 어렵게 만드는 것은 어렵습니다. – Gregor

관련 문제