异步编程中的迭代(Node.js)

异步编程中的迭代(Node.js),node.js,async.js,Node.js,Async.js,我想迭代insert到db。迭代完成后,我希望生成成功消息并将用户重定向到特定页面。这就是我使用异步包的原因。 这是我的密码: async.forEachOf(venue_1_split, function (venue, key, callback) { pool.query("INSERT INTO peminjaman_venue VALUES (?,?,?,?,?,?,?)", [id_event, venue, id_google_c

我想迭代insert到db。迭代完成后,我希望生成成功消息并将用户重定向到特定页面。这就是我使用异步包的原因。 这是我的密码:

async.forEachOf(venue_1_split, function (venue, key, callback) {

pool.query("INSERT INTO peminjaman_venue VALUES (?,?,?,?,?,?,?)", 
                        [id_event, venue, id_google_calendar, waktu_mulai_1, waktu_selesai_1, tanggal_peminjaman_1, tanggal_peminjaman_1],
                        function(err, rows, fields){
                            if (err) throw err;
                        });

                            req.flash('message_success', 'Berhasil mengajukan event');
                            callback(res.redirect('/pengajuan_event'));
                        }, function (err) {
                            if (err) console.error(err.message);

                        });
它有效,但似乎不正确。首先,它返回错误`

“发送邮件后无法设置邮件头”

当我检查数据库时,它只插入了2行。循环在第二次迭代时停止。你能修好我的密码吗。多谢各位


`

每次插入后,您都会重定向到
/pengajuan\u事件。试试下面的代码

async.forEachOf(venue_1_split, 
  function (venue, key, callback) {
    pool.query("INSERT INTO peminjaman_venue VALUES (?,?,?,?,?,?,?)", 
      [
        id_event, 
        venue, 
        id_google_calendar, 
        waktu_mulai_1, 
        waktu_selesai_1, 
        tanggal_peminjaman_1, 
        tanggal_peminjaman_1
      ],
      callback(err, rows, fields)
    )}, function (err) {
      if(err) {
        console.error(err.message);
      } else {
        req.flash('message_success', 'Berhasil mengajukan event');
        res.redirect('/pengajuan_event')
      }
    }
);

节点样式的回调需要
(error,result)
,因此不应该抛出错误,而应该
返回回调(err)
,而不是
回调(res…)
应该
回调(null,)
然后,只有在最后的回调中,您才应该调用
res
上的方法。迭代运行良好,但重定向消息not executed@mandar.gokhaleI也将callback()替换为函数(err,rows,fields){if(err)throw err;}