Node.Js中的变量值不一致

时间:2017-03-01 16:59:57

标签: 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 = 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。可以对此有任何解释吗?

1 个答案:

答案 0 :(得分:0)

这是一个错字。 crawlStarter(initialData)不是crawlStarter(intialData)。

由于拼写错误,每次迭代都必须打印未定义,你只是不知道,因为你没有在未定义时打印它。