NodeJ中的Promise错误

时间:2017-09-28 20:52:45

标签: javascript mysql node.js

我正在哄骗你学习使用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

2 个答案:

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

有多个错误:

  1. 变量promise未在任何地方定义,也不需要。您可以直接退回承诺。

  2. 您错过(resolve, reject)周围的问题,使其成为具有多个参数的正确箭头函数声明。

  3. return之前需要reject(),因此无法继续处理。

  4. 您错过了关闭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);
		});
	});
};