为什么我总是回到未定义的?

时间:2017-08-07 22:42:00

标签: javascript function design-patterns

我是Javascript的新手,并且尝试在函数内部编写函数,但它始终显示为undefine。

function csnotebook(){  
    function calculate_mw(peptide){     
        var total_mw=0;                                 
        var split_peptide = peptide.split("-");
        // Check if the blog id is found in database
        Aa.findOne({ three_letter: split_peptide[1] }, (err, aa) => {
        // Check if the id is a valid ID
            if (!aa) {
                console.log("wrong aa");
            }else{
                total_mw += aa.mw;
            } 
            return total_mw;
      });
    }
    var publicAPI = {                           
        mw: calculate_mw                
    };

    return  publicAPI; 
}
var fred = csnotebook();
var totalmw = fred.mw("Ala-Cys");
console.log(totalmw);

我假设我可以从数据库中找到相应的值mw,但总的来说,我总是因为某些共振而未定义,有人知道为什么吗?谢谢!!

1 个答案:

答案 0 :(得分:0)

内部函数calculate_mw不会返回任何内容,因此函数的返回值为undefined,除非您返回一些内容。

如果您想要返回Aa.findOne的结果,您应该:

return Aa.findOne(...