如何使用promise map实现嵌套循环

时间:2018-05-23 23:40:58

标签: javascript node.js express promise

我有这样的代码:

Promise.all(venue.map(venue => {
    return Promise.all(concat_all.map(tgl => {
        pool.query("INSERT INTO peminjaman_venue VALUES (?,?,?,?,?,?,?,?,?,?,?)",
            [id_event, venue, nama_lengkap_peminjam, jabatan_nim_peminjam, jumlah_personel,
                id_google_calendar, waktu_mulai_rutin, waktu_selesai_rutin, tgl,
                tgl, fasilitas_lain],
            function (err, rows, fields) {
                if (err) throw err;
            })
    }))
}).then(
    req.flash('message_success', 'Berhasil mengajukan event'),
    res.redirect('/pengajuan_event'))
    .catch(
    req.flash('message_err', 'Gagal mengajukan event'),
    res.redirect('/pengajuan_event')
    ))

代码返回错误发送后无法设置标头,表示多次调用res.redirect()。但代码有效。数据已成功插入数据库。我更改了下面的代码,代码根本不起作用。

Promise.all(venue.map(venue => {
    return Promise.all(concat_all.map(tgl => {
        pool.query("INSERT INTO peminjaman_venue VALUES (?,?,?,?,?,?,?,?,?,?,?)",
            [id_event, venue, nama_lengkap_peminjam, jabatan_nim_peminjam, jumlah_personel,
                id_google_calendar, waktu_mulai_rutin, waktu_selesai_rutin, tgl,
                tgl, fasilitas_lain],
            function (err, rows, fields) {
                if (err) throw err;
            })
    }))
}).then(() = >{
    req.flash('message_success', 'Berhasil mengajukan event')
    res.redirect('/pengajuan_event'))
    }

    .catch((err) => {
    req.flash('message_err', 'Gagal mengajukan event')
    res.redirect('/pengajuan_event')
    }
    )
)

0 个答案:

没有答案