【发布时间】:2017-03-01 16:59:56
【问题描述】:
更新:简化了示例代码
我搜索了这个问题,但无处可寻。我有一个函数,它是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 的值对于某些调用未定义,如上所示。 downloadContition 每秒被爬虫实例调用几次。对此有什么解释吗?
【问题讨论】:
-
嗨@qxz,它现在是一个最小的完整示例。只需要作为 npm 包提供的 simplecrawler,然后在函数中使用它就是包装函数正在做的所有事情。我还包括了从另一个页面调用它的简单程度
标签: javascript node.js express asynchronous