2017-04-27 120 views
0
function getSenderName(senderId) { 
     var __name; 
     // Get user's first name from the User Profile API 
     // and include it in the greeting 
     request({ 
     url: "https://graph.facebook.com/v2.6/" + senderId, 
     qs: { 
      access_token: process.env.PAGE_ACCESS_TOKEN, 
      fields: "first_name" 
     }, 
     method: "GET" 
     }, function(error, response, body) { 
     if (error) { 
      console.log("Error getting user's name: " + error); 
     } else { 
      var bodyObj = JSON.parse(body); 
      __name = bodyObj.first_name; 
      console.log("1.SenderId : " + senderId + " Name : " + __name); 
     } 
     }); 
     console.log("2.SenderId : " + senderId + " Name : " + __name); 
     return __name; 
    } 

与上面的代码中,我得到从函数的函数调用javascript中

1.SenderId : 1234 Name : Vinay 
2.SenderId : 1234 Name : Undefined 

任何人可以帮助我如何访问变量,它是这样的嵌套函数内部

+1

这与嵌套函数无关 - 它与异步代码有关 - 我**下注**您在1之前得到2个输出 –

+0

@JaromandaX是的!真的..我很新的JavaScript。有什么办法可以在 – vjain419

回答

1

只为你里面怎么访问变量要知道,

function getSenderName(senderId, callback) { 
    function(){ 
    var variable ; 
    //some stuff 
    callback(variable, otherArgs ...); 
    } 
} 

回调做的完全相同的工作..

+0

中获得“Vinay”,那么getSenderName调用如何看起来像!? – vjain419

+1

传递回调函数,做你想做的事情,然后用你想要的参数执行回调函数。还请查看MDN文档以获取回调。 – 2017-04-27 06:39:51