Javascript Node.js从另一个函数访问变量的值

Javascript Node.js从另一个函数访问变量的值,javascript,node.js,function,Javascript,Node.js,Function,如何从函数getval获取myObject.myname、myObject.myage的值?当i console.log时,它返回未定义。顺便说一句,我使用的是节点js。谢谢 var post = http.request(options, function(res) { res.setEncoding('utf8'); res.on('data', function (data) { console.log('Response: ' +

如何从函数getval获取myObject.myname、myObject.myage的值?当i console.log时,它返回未定义。顺便说一句,我使用的是节点js。谢谢

    var post = http.request(options, function(res) {
        res.setEncoding('utf8');
        res.on('data', function (data) {
        console.log('Response: ' + data);

    var myObject = JSON.parse(data);

        console.log('----------------------------------------------');
        console.log(myObject.myname);
        console.log(myObject.myage);
        console.log('----------------------------------------------');
        });
    });

    function getVal() {
        //some code here
        console.log(myObject.myname);
        console.log(myObject.myage);
    }

有一个范围问题,你能试试这个吗

var myObject = {};
var post = http.request(options, function(res) {
    res.setEncoding('utf8');
    res.on('data', function (data) {
    console.log('Response: ' + data);

    myObject = JSON.parse(data);

    console.log('----------------------------------------------');
    console.log(myObject.myname);
    console.log(myObject.myage);
    console.log('----------------------------------------------');
    });
});

function getVal() {
    //some code here
    console.log(myObject.myname);
    console.log(myObject.myage);
}
  • myObject
    声明在传递给
    request
    var myObject
    )的匿名函数的外部,而不是内部。目前它是一个局部变量
  • 在收到HTTP响应后调用
    getVal()
    (否则还不会设置)。现在你根本不叫它

  • 顺便说一下,myObject包含myname、myage等。如果对象是在getVal可以访问的范围内声明的,那么这应该没有问题