2014-11-04 58 views
-2

我需要一個傳遞的值。這是我的代碼:無法獲取nodejs中回調函數的值

function parseArticle(i, bookmark_id, bookmark_url, callback) { 
     console.log("Value of i is " + i); 
     console.log("Value of Bookmark_id is coming " + bookmark_id); 
     diffbot.article({uri: bookmark_url}, function(err, response) { 
      console.log("Value of Bookmark_id "+bookmark_id); 

我的問題是diffbot.article下的bookmark_id是未定義的。但根據parseArticle即將到來。

任何想法?

感謝

+0

參數在哪裏? :/ – 2014-11-04 03:49:13

+0

parseArticle(i,bookmark_id,bookmark_url,callbackForParseArticle);我正在調用這個函數 – kamalpreet 2014-11-04 03:50:12

+0

這些是參數,其中是實際參數或傳遞給函數的值? – 2014-11-04 03:51:41

回答

0

您需要了解的Node.js和異步請求的整體思路和回調是如何工作的。

非常簡單,您正在嘗試訪問diffbot.article回調中的參數bookmark_id。但是,功能parseArticle已被執行,並且不會等待diffbot.article的回調函數完成,因爲它是而不是。因此,傳遞給parseArticle的所有參數在其內部使用的函數的回調中超出範圍,因此您會遇到詞法範圍問題。

我建議閱讀關於異步請求和關閉這個寫得很好的blog post的想法。希望它能讓你從正確的方向開始。