我需要一个传递的值。这是我的代码:
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 :(得分:0)
您需要了解node.js以及异步请求和回调的整个概念是如何工作的。
很简单,您正试图在bookmark_id
的回调中访问参数diffbot.article
。但是,函数parseArticle
已经执行,并且不会等待diffbot.article
的回调函数完成,因为不设计同步。因此,传递给parseArticle
的所有参数都不在其中使用的函数的回调范围内,因此会出现词法范围问题。
我建议在这篇写得很好的blog post中阅读关于异步请求和闭包的想法。希望它能让你开始朝着正确的方向前进。