Node.js의 async/await 기능으로 몽구스 약속을 사용하려고합니다. 내 함수 printEmployees
이 호출되면 orderEmployees
함수에 의해 쿼리 된 직원 목록을 저장하려고합니다. console.log
문 내에서 orderEmployees
이 예상 쿼리를 반환하는 동안 printEmployees
의 console.log
은 undefined
을 반환하므로 약속이 올바르게 반환되지는 않습니다.async/await와 몽구스 약속 사용
전 완전히 패러다임을 이해하지 못하고 있다는 것을 전적으로 약속 했으므로 새로운 도움이됩니다.
printEmployees: async(company) => {
var employees = await self.orderEmployees(company);
// SECOND CONSOLE.LOG
console.log(employees);
},
orderEmployees: (companyID) => {
User.find({company:companyID})
.exec()
.then((employees) => {
// FIRST CONSOLE.LOG
console.log(employees);
return employees;
})
.catch((err) => {
return 'error occured';
});
},
[명백한 약속 생성 반 패턴] (https://stackoverflow.com/questions/23803743/what-is-the-explicit-promise-construction-antipattern-and-how-do-iavoid) -it) 오류 처리에 도움이됩니다. 이점은 무엇입니까? 당신은 단순한 비동기 함수에서'return employees'와'throw e'를 사용할 수 있습니다. –
@TamasHegedus 예 좋은 지적, 노드가 내부의 약속에서 예외를 던지기를 처리하지 못한 시대의 오래된 습관! – James