【发布时间】:2015-02-24 09:19:36
【问题描述】:
背景:我有 PHP 背景,这是我第一个使用 MEAN 堆栈的应用程序。
我需要保存一条记录,但在此之前我必须检查数据库中是否已经保存了相同 ID 下的任何记录。 在 PHP 中,我会做这样的事情: 一旦用户点击“保存”: 1) 调用函数检查是否已经存在具有该id的条目 2) 如果没有,调用保存函数。
在 Javascript 中,我对 Promises 等感到有些困惑。
有人可以给我点灯吗?
现在,我正在执行以下操作:
在保存 api 中,我调用此函数来检查数据库中是否已存在记录:
recordExists = findTranscationByBill(billId);
function findTransactionByBill(billId){
results = new promise(function(resolve, reject){
Transactions.find({billId : billId},function(err, transactions){
if(err)
reject("Error: "+err);
//console.log(transactions);
resolve(transactions);
});
});
results.then(function(data){
console.log('Promise fullfilled: '+ data);
}, function(error){
console.log('Promise rejected: ' + error);
});
return $results;
}
问题是我认为我没有正确使用 Promise,因为我的变量没有被填充(因为它是异步的)。
在 console.log 中,我看到承诺正在兑现,但是变量返回为 [object Object]
我被这个问题困住了,因为我不知道我是否应该继续以 PHP 的思维方式思考,或者是否在 Javascript 中使用了不同的方法。
提前致谢!
【问题讨论】:
标签: javascript node.js mongoose promise