返回Promise的响应不起作用:未定义的变量



嗨,我想知道我对Promise的响应不起作用。我总是得到";未定义的";变量,如果要在.then函数中获得访问权限。

这是我的例子:

class BookingRoute extends BasicRoute{
constructor(schemaModel) {
super();
Schema = schemaModel;
}
async post(req, res){      // Example for Override
super.post(Schema, req, res, StoredBookings)
.then((result) => {
console.log(result);
res.json(result);
})
.catch((error) => {
console.log(error);
res.status(422).send("Error while router.get api/products");
});
}
class BasicRoute {
async post(Schema, req, res, storedItems) {
console.log("post " + Schema.modelName);
(req.body != null ? null : res.status(422).send("Error while router.get api/xxx"));
let schema = new Schema(req.body);
await schema
.save()
.then((result)=> {
storedItems.push(result);
return new Promise((resolve, reject)=>{
console.log("Datay from Array...");
console.log(storedItems);
resolve(storedItems);
})
})
.catch(error =>{
return new Error("Wrong Parameter router.get api/xxx/parameters");
})
}
}

我想知道,因为存储项的输出工作正常。但是结果的输出总是"0";未定义";。

我有以下控制台输出:

post Bookings
Datay from Array...
[
{
Products: [ 1000, 2000 ],
StartDate: '31.05.2021',
EndDate: '31.05.2021',
StartTime: 10,
EndTime: 5,
TotalPrice: 4,
OrderNumber: 10,
__v: 0
}
]
undefined

有人知道吗?谢谢

在JavaScript或TypeScript中,类不需要函数作为成员。

我使用VS Code作为代码编辑器,终端显示了一个错误:CCD_ 1。此错误指向您的类class BasicRoute

所以,问题是async post()

您需要绑定到一个方法。

希望你能想出一个解决办法。如果没有,回复我帮你。

最新更新