【发布时间】:2017-10-10 03:57:05
【问题描述】:
我的代码如下图:
checkAndCreateUser(customer_id, email_id).then(result => {
console.log("result is " + result);
});
var checkAndCreateUser = function (custom_id, email) {
return new Promise(function (resolve, reject) {
if ((!custom_id) && (custom_id.trim() == '')) {
var creatUser = new user();
// creatUser._id = user_id;
creatUser.ph_no = ph_no;
creatUser.email_id = email;
console.log("fn works");
user.findOne({
'email_id': email
}, function (err, user) {
console.log("db test");
if (!user) {
creatUser.save(function (err, userInfo) {
if (err) {
reject("no id found");
} else {
customer_id = userInfo._id;
resolve(customer_id);
}
});
} else {
customer_id = user._id;
resolve(customer_id);
}
});
}
});
}
现在这里发生的是我无法成功运行数据库查询。我能够打印 console.log("fn works"),但它不打印 console.log("db test")。那么究竟出了什么问题呢?
【问题讨论】:
-
Mongoose 支持 Promise,您可以直接使用它们,而不是在显式 Promise 对象中嵌入请求和回调:
user.findOne({}).then(res => {}).catch(err => {}) -
谢谢,它帮助了我