在它永远完成之后运行一个刮刀

时间:2016-10-01 17:23:42

标签: javascript node.js promise

我有这个刮刀,我希望永远运行,并在每次完成后运行它。刮刀发出大量的http请求并将数据写入文件。当我尝试做这样的事情时:

while(true){
  scraper();
}

出了点问题。我的文件是空的 - 没有数据。我认为它必须与某些异步/事件问题有关,所以朋友建议我了解承诺。

所以现在我的刮刀看起来像这样:

(function importData(){
  return new Promise(function (resolve, reject) {
    var scraper = function(){
      //Making thousands of http requests
      //manipulating and writing data
      //a little try and catch here and there
    }
   resolve(scraper);
  } 
}())  

我觉得上面的代码有很多错误。我甚至不知道放在哪里reject。需要注意的一件事是我的http请求不是正常的http请求。我正在使用this npm包,它以某种方式使请求同步(我在编写异步请求时遇到了一些问题)。

那就是说,我正在寻找解决这个问题的任何方法(永远运行一个刮刀/程序,并在它完成后运行它)。但是学会用承诺来做这件事会很棒。

0 个答案:

没有答案