如何在没有挂断的情况下执行多种噩梦功能

时间:2015-10-14 19:40:01

标签: node.js nightmare


我试图用梦魇JS刮掉一个网页而被卡住了。
在我的程序中,我将链接上的数组传递给函数,我需要来自所有链接的相同数据 列表可能很长(超过60),如果我尝试做

async.each(Links, function (url, callback) {
    var nightmare = Nightmare(size);
    ...
}

只有前几个实例实际上返回一个值,其他实例只是挂起并且不会加载(空白页面)。当我尝试只做三个时它完美地工作。
我该如何解决?我如何重新分配工作,例如三个并行,只有当它完成所有工作时才会进行下一组工作?还有一个想法可能是使用相同的实例并重复所有链接的步骤?

1 个答案:

答案 0 :(得分:1)

有两种可能的解决方案:

  • 使用public static function recursiveTrace (oObj:Object, sPrefix:String = ""):void { sPrefix == "" ? sPrefix = "---" : sPrefix += "---"; for (var i:* in oObj) { trace (sPrefix , i + " : " + oObj[i], " "); if (typeof( oObj[i] ) == "object") recursiveTrace ( oObj[i], sPrefix); // around we go again } } 等待一个操作完成后再启动另一个操作。

  • 或者在eachSeries传递另一个参数,该参数限制了同时运行的操作数。