Sie mischen Promises und Callbacks. exec()
gibt ein Promise zurück, aber nur, wenn ihm keine Argumente übergeben wurden. Außerdem müssen Sie das Promise zurückgeben, das von exec()
zurückgegeben wird .
return budget.save().then((res) => {
return Budget.findById(res._id) // missing return here
.populate('User')
.populate('Vehicle')
.exec() // don't need anything else
})
Sie können dies ein wenig mehr bereinigen:
return budget.save()
.then(res => Budget.findById(res._id)
.populate('User')
.populate('Vehicle')
.exec())
Wenn Sie die von findById
zurückgegebenen Ergebnisse transformieren müssen bevor Sie sie dem Kunden übergeben:
return budget.save()
.then(res => Budget.findById(res._id)
.populate('User')
.populate('Vehicle')
.exec())
.then(res => {
res.foo = 'Foo'
return res
})