2017-04-27 194 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