Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.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 NodeJs中的承诺错误_Javascript_Mysql_Node.js - Fatal编程技术网

Javascript NodeJs中的承诺错误

Javascript NodeJs中的承诺错误,javascript,mysql,node.js,Javascript,Mysql,Node.js,我正在学习使用承诺来验证mysql。这是我的密码 //main.js var valida=要求('./模/validaciones'); var valor=valida.userP(数据)。然后((行,错误)=>{ console.log(行); }); 控制台日志(valor); //valida.js var mysql=require('mysql'); exports.userP=(数据)=>{ 返回承诺=新承诺(解决、拒绝)=>{ conconnect.query(data.va

我正在学习使用承诺来验证mysql。这是我的密码

//main.js
var valida=要求('./模/validaciones');
var valor=valida.userP(数据)。然后((行,错误)=>{
console.log(行);
});
控制台日志(valor);
//valida.js
var mysql=require('mysql');
exports.userP=(数据)=>{
返回承诺=新承诺(解决、拒绝)=>{
conconnect.query(data.valida_user,(错误,行)=>{
如果(错误)拒绝(错误);
控制台日志(“有效输入”);
console.log(行);
解析(行);
});
};

};这就可以了,基本上是这一行:

return promise = new Promise(resolve,reject)=>{
为此:

return new Promise ((resolve,reject) => {
完整代码如下:

//main.js
var valida=要求('./模/validaciones');
var valor=valida.userP(数据)。然后((行,错误)=>{
console.log(行);
});
控制台日志(valor);
//valida.js
var mysql=require('mysql');
exports.userP=(数据)=>{
返回新承诺((解决、拒绝)=>{
conconnect.query(data.valida_user,(错误,行)=>{
如果(错误)拒绝(错误);
控制台日志(“有效输入”);
console.log(行);
解析(行);
});
});

};将代码更改为:

exports.userP = (data) => {
    return new Promise((resolve, reject) => {
        conection.query(data.valida_user, (error, rows) => {
            if (error) return reject(error);
            console.log("Entra en validacion");
            console.log(rows);
            resolve(rows);
        });
    });
};
有多处错误:

  • 变量
    promise
    未在任何地方定义,也不需要。你可以直接兑现诺言

  • 您缺少了
    (resolve,reject)
    的参数,使其成为具有多个参数的正确的arrow函数声明

  • reject()
    之前,您需要一个
    return
    ,这样处理将不会继续

  • 您缺少一个关闭
    新承诺()
    的关闭参数


  • 相同错误
    返回新承诺(解析,拒绝)=>{
    请阅读我的完整awnser,您需要在“新承诺”后加上双括号,它会引发相同的错误
    返回新承诺(解析,拒绝)=>{^^^语法错误:意外的新标记
    @eleazortega-请查看我答案中的代码,因为您显示的错误不是我答案中的代码。我在第一次发布后做了一些编辑,因为我发现了更多需要修复的错误。哇,对不起,我没有全部阅读…但您是对的…现在我的代码运行了,但不要忘记查询函数中的owde console.log…只需返回一个对象=pending@EleazarOrtega-是的,这就是返回承诺的作用。使用
    moduleName.userP(someData)。然后(result=>{/*code在这里使用result*/})
    访问数据。使用
    .then()
    wait
    从承诺中获取数据。