node.js - 如果脚本退出 nodejs 之后返回几个错误,我想创建一个 unhandledRejection
问题描述
你好我想创建一个 unhandledRejection 如果它在脚本退出后返回几个错误我会解释为什么
process.on ('unhandledRejection', (reason, p) => {
console.error ('Unhandled Rejection at: Promise', p, 'reason:', reason);
run();
});
在这里我的脚本会在出现错误的情况下重新启动,但我希望它在之后出现多个错误时停止如果你有想法我不知道该怎么做
这是一个脚本停止错误的示例:
process.on ('unhandledRejection', (reason, p) => {
console.error ('Unhandled Rejection at: Promise', p, 'reason:', reason);
process.exit();
});
解决方案
您可以使用布尔值(标志),这样您的“运行”只运行一次。但是,如果你连续有两个错误,它不太可能完成,所以如果还有其他错误,你需要在第二个、第三个等上做某种“等待”。
let flagOneUnhandledReject = false;
let finalProcess = Promise.resolve();
process.on ('unhandledRejection', async (reason, p) => {
console.error ('Unhandled Rejection at: Promise', p, 'reason:', reason);
if(!flagOneUnhandledReject){
flagOneUnhandledReject = true
finalProcess = run(); // run() needs to return a promise
}else{
await finalProcess; // make sure finalProcess doesn't throw any errors
process.exit();
}
});
推荐阅读
- java - 这种类型的正则表达式命令是否存在?
- css - SVG CSS过渡不适用于`use`元素(Chrome)
- database - 将本地数据库推送到 heroku 的 postgresql 数据库时出错
- c# - 从表单发送电子邮件仅在我的网页的已部署状态下失败
- javascript - 提取序列乱序返回
- flutter - 如何在颤动中翻译按钮边框?
- javascript - 使用 Angular,单击一个按钮来更改一个 DOM 元素,然后运行一个函数
- python - Django - 如何由于外键模型关系排除查询集中的实例
- flutter - 找不到正确的提供者
- graph - 为无向无权有根图查找树