NodeJs如何等待函数返回值而不是undefined

时间:2017-12-18 11:07:45

标签: javascript node.js asynchronous

我正在学习NodeJS,目前我的第一个项目是基于订阅的网站。

我需要一个条件来决定一个事务是否在其btcTx属性中具有值。这样做是因为当用户创建新事务时,会创建BTC事务并将其添加到事务.btcTx属性中。用户按F5后,它不应创建新事务,而应使用已创建的事务。 我的函数需要一个参数值为ID。

function tranHasBTC(tranId) {
    Transaction.findById(tranId,function(err,foundTr){
        if(err){
            console.log(err);
        } else {
            return (foundTr.btcTx != undefined);
        }
    });
}

该函数应该在mongoDB数据库中查看并查看在参数内传递的事务是否在btcTx处具有值。

然后在这里我有一个应该依赖于上层函数返回值的函数

router.get("/btc/:txId", function (req, res) {
    var tranId = req.params.txId;
    var tranTrue = tranHasBTC(tranId);

    if (!tranTrue) {
       //add new transaction
    } else {
        //find transaction in database and load it from there
    }
});

问题在于每当

var tranTrue = tranHasBTC(tranId);

被调用,它返回undefined

我假设我需要使用某种异步函数来等待返回true或false的方法,我已经尝试了承诺但是我无法完成它,这就是为什么我是发布在这里。

0 个答案:

没有答案