0
我有這個代碼的問題如何使用Node.js承諾不執行使用鏈接承諾Node.js的
顯然沒有被執行以下承諾:
return bloguers.replaceOne({id: bloguer.id}, bloguer,{upsert:true}, function (err){
console.log(err);
res.status(400).end();
});
這裏的其餘功能:
.post(function (req,res){
var bloguers = db.collection('bloguers');
var bloguer = req.body;
console.log(bloguer.id);
bloguers.findOne({id: bloguer.id}).then(function (respon){
if(respon != null){
console.log('dentro if');
return bloguers.replaceOne({id: bloguer.id}, bloguer,{upsert:true}, function (err){
console.log(err);
res.status(400).end();
});
}
else{
return bloguers.insertOne(bloguer).then(function (r){
}, function (err) {
console.log(err);
res.status(400).end();
});
}
}).then(function(r){
res.json(r);
})
});
您可以看到console.log('dentro if')被執行,但承諾不是。
事實上,我使用的是MongoDB驅動程序,它確實會返回一個承諾。然而,我試過你的代碼,但仍然諾言是正在執行的筆記(試圖把一個控制檯日誌裏面.then()。 – LucasMesquita