Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/432.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
返回Javascript中函数作用域之外的变量_Javascript_Node.js_Neo4j - Fatal编程技术网

返回Javascript中函数作用域之外的变量

返回Javascript中函数作用域之外的变量,javascript,node.js,neo4j,Javascript,Node.js,Neo4j,我尝试了这里发布的所有解决方案,但没有任何效果,因为我的问题有点不同 我有以下代码(调用外部neo4j模块的代码,将节点插入neo4j数据库,然后获取该节点的neo4j Id): 所有这些都可以正常工作,但是如何将node.id传递到函数范围之外(err,node),然后将该值添加到另一个对象 当我试着做一些像 user.neo_id = node.id; 在上面的代码块之后,它是未定义的(当然) 尝试在命名函数内运行dbneo.insertNode,但如果我将返回值放入函数(err,node

我尝试了这里发布的所有解决方案,但没有任何效果,因为我的问题有点不同

我有以下代码(调用外部neo4j模块的代码,将节点插入neo4j数据库,然后获取该节点的neo4j Id):

所有这些都可以正常工作,但是如何将node.id传递到函数范围之外(err,node),然后将该值添加到另一个对象

当我试着做一些像

user.neo_id = node.id;
在上面的代码块之后,它是未定义的(当然)

尝试在命名函数内运行dbneo.insertNode,但如果我将返回值放入函数(err,node),它仍然未定义


抱歉,如果这个问题有点简单/愚蠢,但我只是从JavaScript开始。谢谢大家!

好的,根据你的建议,我有了这个临时代码。可能不是最好的(可能会堵塞),但它解决了问题

我只是在确定从Neo4J数据库收到变量(node.id)后才调用下一个函数。如果有人知道一个更优雅的解决方案,请告诉我(特别是异步库)


不是,不是真的。。。不适合我…您应该使用
async
模块来实现这一点,组合多个调用并得到一个结果。或者完全依赖于不方便的事件是否没有更简单的方法将node.id变量从函数中取出到上下文中?我是说这是一件小事,肯定有办法,不是吗?:)
user.neo_id = node.id;
 dbneo.insertNode({
    auth_id: user.id,
    username: user.name,
    name: user.name
},function (err, node){
    if(err) throw err;
    // Output node properties.
    console.log(node.data);
    // Output node id.
    console.log(node.id);

    // RECEIVED node.id ? ONLY THEN SEND IT TO THE FUNCTION THAT NEEDS IT
    send_neo_id(node.id);
});


// THIS IS THE FUNCTION THAT WAS NOT RECEIVING NODE.ID BEFORE:

function send_neo_id(neo_id) {
    user.neo_id = neo_id;
    db.set('user:id:' + user.name, id, function(err) {
        if (err) return fn(err);
        db.hmset('user:' + id, user, function(err) {
            fn(err);
        });
    });
};