Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 节点承诺停止工作_Javascript_Node.js_Promise - Fatal编程技术网

Javascript 节点承诺停止工作

Javascript 节点承诺停止工作,javascript,node.js,promise,Javascript,Node.js,Promise,由于某种原因,节点中的承诺不起作用,尽管它以前起过作用。 这是我的特快路线: app.post('/login/', function (req, res) { let email = req.body.email; let password = req.body.password; let companyId = req.body.companyId; let controller = require('./con

由于某种原因,节点中的承诺不起作用,尽管它以前起过作用。 这是我的特快路线:

    app.post('/login/', function (req, res) {
    let email       =   req.body.email;
    let password    =   req.body.password;
    let companyId   =   req.body.companyId;
    let controller  =   require('./controllers/agents/index');
    controller.login(email, password, companyId).then((data) => {
        console.log(data)
        res.send(data);
    });
它调用一个执行sql查询的登录函数:

login(email, password, companyId) {
    let loginPromise  =   new Promise(function(resolve, reject) {
        email       =   mysql.escape(email);
        password    =   mysql.escape(password);
        companyId   =   mysql.escape(companyId);
        if(!email || !password || !companyId) {
            let data    =   {
                code: 401,
                test: 'Missing Parameter'
            }
            resolve(data)
        }
        let dataReturn    =   {};
        let query   =   `SELECT agents.id FROM buschat.agents WHERE email=${email} AND password = ${password} AND company_id = ${companyId}`;
        DB.Q(query).then((data) => {
            if(data.length) {
                dataReturn    =   {
                    code: 200,
                    text: 'Login Success.'
                }
            } else {
                dataReturn    =   {
                    code: 400,
                    text: 'Login Failed.'
                }
            }
            console.log(dataReturn);
            resolve(data);
        });
        resolve({})
    });
    return loginPromise;
}

正如您所看到的,那里有一个控制台日志,显示了该对象,但由于某些原因,解析函数没有将其发送到路由…

为什么您试图调用
resolve
两次?另外,要避免这种情况!我取消了第二个决定。但它仍然没有将数据从promise发送到“then”。所以你声称你得到的是第一个
控制台。log
,但不是第二个?是的,但我发现了问题。我返回“data”,它也是来自DB.Q返回对象的回调。。。