如何在循环中获取我的局部变量以使用快速框架更改节点js中的全局变量?

时间:2017-07-28 02:37:14

标签: javascript node.js express asynchronous callback

我有来自并行异步回调的对象数组结果,下一个进程我想使用循环为我的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);

1 个答案:

答案 0 :(得分:0)

为了扩展jfriend00的答案,function(err, rows)是一个回调函数,将在解析查询后执行。同时,不是等待查询解析,而是在回调中没有布尔修改的情况下执行var output = {"success" : boolean}

因此,为了正确发送输出,您必须在boolean = true;之后将代码包含在回调中。

这是一个很棒的question,给出了node.js中回调用法的基本示例。