我有来自并行异步回调的对象数组结果,下一个进程我想使用循环为我的objact数组结果插入我的表,但我现在不用处理我的状态插入。
var boolean = false;
if(results.code.success === true){
for(i=0; i<req.body.id_barang.length; i++){
detail[i] = {
"id_transaksi" : results.code.id_transaksi,
"id_barang" : req.body.id_barang[i],
"qty" : req.body.qty[i],
"sub_total" : parseInt(req.body.sub_total[i].replace(/,.*|\D/g,''),10)
}
connection.query("insert into detail_transaksi set ? ", detail[i], function(err, rows){
if(err){
null
} else{
boolean = true;
}
})
}
}
var output = {"success" : boolean}
res.send(output);
答案 0 :(得分:0)
为了扩展jfriend00的答案,function(err, rows)
是一个回调函数,将在解析查询后执行。同时,不是等待查询解析,而是在回调中没有布尔修改的情况下执行var output = {"success" : boolean}
。
因此,为了正确发送输出,您必须在boolean = true;
之后将代码包含在回调中。
这是一个很棒的question,给出了node.js中回调用法的基本示例。