我正在使用nodejs和mysql,我的问题是我需要第二个函数仅在第一个函数结束时才执行。我不确定我是否以正确的方式使用回调,因为它无法正常工作。谢谢你的帮助!

var rol;
                function first(callback) {
                    req.getConnection((err, conn) => {
                        conn.query('select idTipoUsuario from tipoUsuario where tipoUsuario = ?', [req.body.rol], (err, sol) => {
                            console.log("FIRST");
                            console.log(sol);
                            rol = sol[0].idtipoUsuario;
                        });
                    })
                    callback()
                }

                function second() {
                    req.getConnection((err, conn) => {
                        console.log("SECOND");
                        conn.query('insert into usuario values ?', [req.body.idUser, req.body.name, req.body.password, rol], (err, user) => {
                            req.flash('useradded', 'User added!');
                            res.redirect('/adduser');
                        });
                    })
                }

                first(second);

最佳答案

解决了。我将callback()调用移到了rol = sol[0].idtipoUsuario;下方

10-02 08:23
查看更多