NodeJs中的承诺错误

我正在试着学习使用诺言来validationMySQL。 这是我的代码。

//main.js var valida= require('./modulos/validaciones'); var valor=valida.userP(data).then((rows,error)=>{ console.log(rows); }); console.log(valor); //valida.js var mysql= require('mysql'); exports.userP= (data)=>{ return promise = new Promise(resolve,reject)=>{ conection.query(data.valida_user,(error,rows)=>{ if (error) reject(error); console.log("Entra en validacion"); console.log(rows); resolve(rows); }); }; }; 

但是当我运行的代码,控制台显示我这个return promise = _new_ Promise(resolve,reject)=>{ SyntaxError: Unexpected token new

我正在使用nodejs 8.11

将您的代码更改为:

 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); }); }); }; 

有多个错误:

  1. variablespromise没有被定义在任何地方,也不是必需的。 你可以直接返回诺言。

  2. 你错过了(resolve, reject) parens使其成为一个正确的箭头函数声明与多个参数。

  3. 你需要return你的reject()之前,所以处理将不会继续。

  4. 你错过了closuresnew Promise()

这可以做到这一点,基本上这一行:

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

为了这:

 return new Promise ((resolve,reject) => { 

下面的完整代码:

 //main.js var valida= require('./modulos/validaciones'); var valor=valida.userP(data).then((rows,error)=>{ console.log(rows); }); console.log(valor); //valida.js var mysql= require('mysql'); exports.userP= (data)=>{ return new Promise ((resolve,reject) => { conection.query(data.valida_user,(error,rows)=>{ if (error) reject(error); console.log("Entra en validacion"); console.log(rows); resolve(rows); }); }); };