我制作线路聊天机器人,我对承诺有一些问题



我使用 heroku 和 node 制作线路聊天机器人.js然后当我验证 webhook 时,我得到了一个错误

这是在线开发人员的错误

当我在这里运行/webhook 和错误时

未处理的承诺拒绝

警告:未处理的承诺拒绝。此错误起源于在没有 catch 块的异步函数内部抛出,或者拒绝未使用 .catch(( 处理的承诺

DEP0018] 弃用警告:不推荐使用未处理的承诺拒绝。将来,未处理的承诺拒绝将以非零退出代码终止 Node.js 进程。

这是我的代码

app.post('/webhook', line.middleware(config), (req, res) => {
res.sendStatus(200)
Promise
.all(req.body.events.map(handleEvent))
.then((result) => res.json(result))
.catch();
throw new Error('Failed');
});

我想我做出了错误的承诺需要帮助,谢谢

假设您使用的是 Express,请尝试以下操作:

app.post('/webhook', line.middleware(config), (req, res) => {
Promise
.all(req.body.events.map(handleEvent))
.then(result => res.status(200).json(result))
.catch(err => res.status(500).end('Failed'));
});

或者,您可以使用next函数将错误转发到 Express 错误处理程序:

app.post('/webhook', line.middleware(config), (req, res, next) => {
Promise
.all(req.body.events.map(handleEvent))
.then(result => res.status(200).json(result))
.catch(err => next(err));
});

最新更新