这是代码,当我运行这个它只执行一次...
export const postStock = (body) => {
for (let val of body.order.values()) {
let sql = ` INSERT INTO stockmaster (stocknum, cat_id, user_id, dyenumber, stockQty) VALUES ('${body.stocknum}', ${JSON.stringify(val.cat_id)}, '${body.user_id}', ${JSON.stringify(val.dyenumber)}, ${JSON.stringify(val.stockQty)})`;
return sql;
};
};
那么我如何运行for循环或防止它停止它呢?
这就是函数的工作原理,当循环开始时,它会多次发送响应,所以我尝试将其设置为循环外,但现在如果我将响应设置为循环外,那么我如何在响应中发送错误
所以我被困在这里了!!!!
static stock = async (req, res) => {
for (let i = 0; i < req.body.order.length; i++) {
const body = req.body;
connection.query(postStock(body, body.order[i]), (err, result) => {
if (err) {
res.status(500).json({
code: 0,
msg: "Fail",
emsg: "Server error: " + err.message
});
} else {
connection.query(updatepStock(body.order[i]), async (err, result) => {
if (err) {
res.status(500).json({
code: 0,
msg: "Fail",
emsg: "Server error: " + err.message
});
}
})
}
})
}
res.status(201).json({code: 1,msg: "success",emsg: "Stock arrived & Product Stock updated successfully"
})
}
2条答案
按热度按时间ujv3wf0j1#
return
停止执行并退出函数。return
总是立即退出它的函数,如果它在for循环中,则不会进一步执行。因此,如果希望循环继续,应该避免使用
return
。您可以做的是将sql存储到数组中或打印数据,而不返回任何内容4nkexdtk2#
你可以使用这个。return使循环函数存在。