Javascript Node.Js中的变量值不一致
更新:简化了示例代码 我找了这个问题,但什么也没找到。我有一个函数,它是Javascript Node.Js中的变量值不一致,javascript,node.js,express,asynchronous,Javascript,Node.js,Express,Asynchronous,更新:简化了示例代码 我找了这个问题,但什么也没找到。我有一个函数,它是simplecrawler的包装器。以下是简化代码: const Crawler = require('simplecrawler'); //Initial data is an object with initial.url set to url for crawling const startCrawler = function startCrawler() { const crawler =
simplecrawler
的包装器。以下是简化代码:
const Crawler = require('simplecrawler');
//Initial data is an object with initial.url set to url for crawling
const startCrawler = function startCrawler() {
const crawler = new Crawler('http://example.com');
crawler.start();
const randomVariable = "set";
const downloadCondition = crawler.addDownloadCondition((queueItem) => {
console.log(randomVariable);
});
};
控制台:
set
set
set
set
set
set
undefined
set
set
undefined
undefined
set
问题是在downloadCondition
中,常量randomVariable
的值对于上面所示的一些调用是未定义的。爬虫程序实例每秒调用downloadcontion
。对此有什么解释吗?这是个打字错误。爬行启动程序(初始数据)不是爬行启动程序(初始数据)
由于打字错误,每次迭代都必须打印未定义的内容,您不知道这一点,因为在未定义内容时您没有打印。您能提供一个吗?Hi@qxz,这是一个最小的完整示例。包装器函数所做的只是需要simplecrawler,它作为npm包提供,然后在函数中使用它。我还介绍了如何简单地从另一个页面调用它感谢Hadas,它只是在示例中,我从主代码重新创建了上面的代码。在原始文件中,我有正确的名称和“initialData”,但不是在每个itereation中都未定义,它只是在某些迭代中未定义?我导出了这个函数,如果你正在讨论的话,可以进一步简化它