Node.js. async/await işlevsellik ile Mongoose promises kullanarak asmak çalışıyorum. printEmployees
işlevim çağrıldığında, orderEmployees
işlevi tarafından sorgulanan çalışanların listesini kaydetmek istiyorum. orderEmployees
içindeki console.log
ifadesi, beklenen sorguyu döndürürken, printEmployees
'un içindeki console.log
, undefined
değerini döndürür; bu, söz vermeyi doğru bir şekilde döndürmediğimi gösterir.Async/await ile mongoose sözlerini kullanarak
Paradigmayı tam olarak anlayamadığım kadar çok söz veriyorum yeniyim ... herhangi bir yardım çok takdir ediliyor.
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';
});
},
[Açık söz yaratma antipatternini] nasıl göremiyorum (https://stackoverflow.com/questions/23803743/what-is-the-explicit-promise-construction-antipattern-and-how-do-i-avoid -it) hata işleme ile yardımcı olur. Fayda nedir? Basit bir async fonksiyonundan sadece çalışanlarınızı ve “e” komutlarını geri gönderebilirsiniz. –
@TamasHegedus evet, iyi bir nokta, Node'un iç vaatlerden iyi istisnalar atmadığı zamanlarda eski alışkanlık! – James