Reputation: 493
I am using sequelize with Nodejs.I want to see the value of ret when i call this function createMobileUser but i am getting undefined . How can i achieve this .Sorry i am new to Node.js but i have searched several links before posting this .
exports.createMobileUser = function(Mobile,reg_list) {
var ret = -1;
if(reg_list.length ==5 && reg_list !=undefined)
{
var mobile_owner_name = reg_list[0];
var email = reg_list[1];
var phone_no = reg_list[2];
var mobile_name = reg_list[3];
var country = reg_list[4];
var test = Mobile.create({
mobile_mac_address: "0",
mobile_owner_name: mobile_owner_name,
mobile_name: mobile_name,
mobile_owner_phone: phone_no,
mobile_owner_email: email,
mobile_owner_country: country,
is_checked : "0",
is_occupied : "0"
}).then((result) => {
ret = 1;
return ret;
console.log("inside result");
//console.log(result);
}).catch(err=>{
ret = -1;
return ret;
console.log("inside error");
// console.log(err);
});
}
console.log(ret);
return ret;
};
var test = this.createMobileUser(db.Mobiles,reg_list);
//returning undefined
Upvotes: 0
Views: 307
Reputation: 7250
You should return a promise
:
exports.createMobileUser = function (Mobile, reg_list) {
return new Promise((resolve, reject) => {
if (!(reg_list.length == 5 && reg_list != undefined)) return reject(-1); //better reject with some useful Error
resolve();
})
.then(() => {
var mobile_owner_name = reg_list[0];
var email = reg_list[1];
var phone_no = reg_list[2];
var mobile_name = reg_list[3];
var country = reg_list[4];
var test = Mobile.create({
mobile_mac_address: "0",
mobile_owner_name: mobile_owner_name,
mobile_name: mobile_name,
mobile_owner_phone: phone_no,
mobile_owner_email: email,
mobile_owner_country: country,
is_checked: "0",
is_occupied: "0"
});
return test;
})
.then((result) => {
ret = 1;
return ret;
console.log("inside result");
//console.log(result);
})
}
var test =
this.createMobileUser(db.Mobiles, reg_list)
.then((value) => {
console.log("inside result", value);
})
.catch((err) => {
console.log('inside error')
})
Upvotes: 1