当我尝试插入一些数据并使用“for循环”处理结果时,迭代只在上一个循环中完成。
const sql4 = "insert into core_crm_job_task set ?";
for(var m = 0; req.body.jobTasks.length > m; m++){
console.log('a'+m);
let jobTask = {
ID_JOB_REGISTRY : registryId,
ID_TASK_CODE : jobCode+' '+req.body.jobTasks[m].task_code_suffix,
TASK_TYPE : req.body.jobTasks[m].task_type,
TASK_QTY : req.body.jobTasks[m].task_qty,
TASK_INSTRUMENT : req.body.jobTasks[m].task_instrument,
TASK_INSTRUMENT_ID : req.body.jobTasks[m].task_instrument_id,
REMARK : req.body.jobTasks[m].task_remark,
IS_ACTIVE: 1,
CREATED_BY: 1,
CREATED_DATE: getCurrentTime()
};
connection.query(sql4,jobTask, (err, result) => {
if (err){
console.log('b'+m);
connection.release();
}
else{
console.log('c'+m);
//some process here
}
})
}
下面是我使用一个包含3个元素的数组时的输出示例。带有字母“c”的日志只在最后一个元素中打印。其他元素没有完成迭代。
a0
a1
a2
c2
但是我需要在每个insert查询之后做一些处理。在这种情况下是不可能的。请提出一些解决方案!
3条答案
按热度按时间q7solyqu1#
问题解决了!:)刚刚将循环变量类型替换为“let”
至
c3frrgcw2#
您可以使用async.eachasync ref
所以它会一个接一个的执行,你会得到预期的结果
pvabu6sv3#
addemojies:函数(请求、回调){