首页 > 解决方案 > 如果条件无法正常工作,因为我将变量的值设为未定义

问题描述

我在 nodejs 中运行 neo4j 密码查询并在回调函数中获取结果:

async (body) => {

    await query.cypher({
            query: 'Match (phoneno {phnnumber : {number}}) return phoneno',
            params: {
                number: body
            }
        },
        await
        function(err, data) {
            len = data.length
            console.log("len:" + len)

        });
    console.log("len outside:" + len)

    if (len == 0) {
        return false;
    } else {
        return true;
    }
}

“len outside:”控制台日志和if语句都显示lenundefined. 谁能明白为什么?

标签: node.jsneo4jcypher

解决方案


您应该len在函数顶部定义为变量:

async(body)=>{
    var len = null;

        await query.cypher({
            query: 'Match (phoneno {phnnumber : {number}}) return phoneno',
            params: {
                number : body
            }
        },
        await function(err,data){
         len = data.length
         console.log("len:"+len)

        });
        console.log("len outside:"+len)

        if (len == 0 ){
            return false;
        }
        else{
            return true;
        }
}

推荐阅读