javascript - 尝试 Catch、Async Await 导致生产中的请求超时
问题描述
我是 Try and catch with Async and Await 方法的新手,我的代码在本地主机中工作,但是当我在生产中部署生成的请求超时时需要很长时间才能成功。我想知道我对 async 和 await 的解释是正确的,数组中有很多对象是可变细节。有没有其他方法可以加快这个过程?我使用 Try and catch 来防止应用程序崩溃。谢谢你的回答。
async function find_201(req, res, data, bus, checklist, x){
try{
let data1 = JSON.stringify(data)
//old damaged
const old_damaged = x.filter(obj => obj.isDamaged === true);
//new damaged
const new_damaged = x.filter(({id}) => data1.includes(id)); //getting empty array
const a_details = x.filter((id) => !old_damaged.includes(id));
const details = a_details.filter((id) => !new_damaged.includes(id));
for(w of details){
let part = w.part,
position = w.position,
company = w.company,
busNumber = bus,
_id = w.id,
mile_age = w.mile_age,
isDamaged = false;
let author = {
id: req.user._id,
username: req.user.username,
firstName: req.user.firstName,
lastName: req.user.lastName,
};
let image = {contentType: 'image/png', data: 'none'};
let date_now = new Date().addHours(8).toISOString();
let detail = {part:part,id:_id, position:position, company:company,isDamaged:isDamaged, mile_age: mile_age, author:author, busNumber:busNumber,image:image, date_created: date_now};
let id = {id: _id, busNumber: bus};
let a = await Bus.findOneAndUpdate(id, detail)
if(!a) throw createError(404, 'Invalid ID for finding 201 file')
let found = await Trip.findById(req.session.trip)
if(!found) throw createError(400, 'Trip session expired, Please re-login again!')
let raw = await Raw_360.create(detail)
if(!raw) throw createError(400, 'Details incomplete for RAW Data 360, Please try again!')
found.start_360.push(raw)
found.save();
}
return res.redirect('/trip/' + req.session.trip)
}catch(e){
error_logs(e, req)
req.flash('error', 'ERROR CODE ' + e.status + ' ' + ' MESSAGE '+ e.message )
return res.redirect('back')
}
};
解决方案
推荐阅读
- optimization - 我们如何在放大器中制作数千组?
- linux - 如何修复 Cshell 脚本中的“无法打开共享对象文件”?
- json - 将此 JSON 转换为树并找到父级的路径
- excel - 收到“应用程序定义或对象定义”错误
- python-3.x - 列表中的重复条目
- c++ - 使用 if/else if 的函数输出问题
- compilation - ARM 裸机程序编译 - 控制闪存写入
- java - 使用 AWS Toolkit 更新 Elastic Beanstalk 环境的 Eclipse Java 出错 - javax/xml/bind/JAXBException
- javascript - Typescript 是否在类构造函数中设置接口属性?
- jquery - 我需要帮助在单击按钮时将输入字段从 div 添加到另一个 div