无法在nodejs中获得回调函数的值

时间:2014-11-04 03:39:44

标签: javascript node.js

我需要一个传递的值。这是我的代码:

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下会很好。

有什么想法吗?

由于

1 个答案:

答案 0 :(得分:0)

您需要了解node.js以及异步请求和回调的整个概念是如何工作的。

很简单,您正试图在bookmark_id的回调中访问参数diffbot.article。但是,函数parseArticle已经执行,并且不会等待diffbot.article的回调函数完成,因为设计同步。因此,传递给parseArticle的所有参数都不在其中使用的函数的回调范围内,因此会出现词法范围问题。

我建议在这篇写得很好的blog post中阅读关于异步请求和闭包的想法。希望它能让你开始朝着正确的方向前进。