我正在哄骗你学习使用promises来验证mysql。这是我的代码。
//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
答案 0 :(得分:2)
将您的代码更改为:
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)
周围的问题,使其成为具有多个参数的正确箭头函数声明。
在return
之前需要reject()
,因此无法继续处理。
您错过了关闭paren以关闭new Promise()
。
答案 1 :(得分:1)
这可以解决问题,基本上就是这一行:
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);
});
});
};