Tôi đang cố gắng sử dụng Mongoose với chức năng async/await của Node.js. Khi chức năng của tôi printEmployees
được gọi là tôi muốn lưu danh sách nhân viên được truy vấn bởi chức năng orderEmployees
. Trong khi, tuyên bố console.log
bên trong orderEmployees
trả về truy vấn mong đợi, console.log
bên trong của printEmployees
trả về undefined
, cho thấy rằng tôi không trả lời đúng.Sử dụng mongoose hứa hẹn với async/await
Tôi mới hứa hẹn hoàn toàn có thể là tôi không hiểu chính xác mô hình ... bất kỳ trợ giúp nào được đánh giá cao.
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';
});
},
Tôi không thấy cách [antipattern tạo lời hứa rõ ràng] (https://stackoverflow.com/questions/23803743/what-is-the-explicit-promise-construction-antipattern-and-how-do-i-avoid -it) sẽ giúp xử lý lỗi. Lợi ích là gì? Bạn chỉ có thể 'trả về nhân viên' và' ném e' từ một hàm async đơn giản. –
@TamasHegedus vâng điểm tốt, thói quen cũ từ những lần mà Node không xử lý ném ngoại lệ tốt từ những lời hứa bên trong! – James