我有这个刮刀,我希望永远运行,并在每次完成后运行它。刮刀发出大量的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包,它以某种方式使请求同步(我在编写异步请求时遇到了一些问题)。
那就是说,我正在寻找解决这个问题的任何方法(永远运行一个刮刀/程序,并在它完成后运行它)。但是学会用承诺来做这件事会很棒。