我有承诺的问题。
mongoDb.getFromDb(req.body.firstName, req.body.lastName)
.then(
rows => {
console.log(rows.count()); // Promise { <pending> }
}
}
日志为:Promise { <pending> }
。
我读到了这个状态:
Pending - until a Promise is fulfilled it is in pending state
这就是为什么,我使用.then()
方法。
正如我所读到的,.then()
方法采用的函数将在Promise 完成后通过已解决的值。
所以,如果它已经实现,为什么国家待定?
如果相关,则为getFromDb
函数:
// Use connect method to connect to the Server
function init() {
connectingDb = new Promise(
function (resolve, reject) {
MongoClient.connect(url, function (err, db) {
if (err) {
console.log('Unable to connect to the mongoDB server. Error:', err);
reject(err);
}
else {
console.log('Connection established to', url);
resolve(db);
}
});
}
);
}
更新#1(torazaburo
的评论):
function getFromDb(firstName, lastName) {
return connectingDb
.then(myDb => {
return myDb.collection('alon').find({
"firstName": firstName,
"lastName": lastName
})
})
.catch(err=> { return err; })
}
(我仍然得到Promise { <pending> }
)
更新#2(noisypixy
的评论):
var mongodb = require('mongodb'); var MongoClient = mongodb.MongoClient;
感谢。
答案 0 :(得分:0)
试试这个:
function getFromDb(firstName,lastName){
@angular