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); }); }); };
有多个错误:
-
variables
promise
没有被定义在任何地方,也不是必需的。 你可以直接返回诺言。 -
你错过了
(resolve, reject)
parens使其成为一个正确的箭头函数声明与多个参数。 -
你需要
return
你的reject()
之前,所以处理将不会继续。 -
你错过了closures
new 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); }); }); };