我使用这个框架来制作几个网址的截图。采取截图的过程是异步,并且该方法不提供一种方式来执行的回调,我想执行的回调时,每个屏幕截图是在这个脚本制作:NightmareJS截图回调
nightmare = new Nightmare();
urls.forEach(function (url) {
nightmare.goto(url).screenshot(path);
});
nightmare.run(function() {
console.log('finished all');
});
任何想法如何,我可以做这个?
运行命令意味着在年底 – fernandopasik 2014-10-16 18:20:58
只使用一次现在,我已经调查了源,而不是依靠例子,似乎调用运行在一个循环将可能存在的问题。您可以通过为每个屏幕截图设置一个新的Nightmare实例来解决这个问题。此外,'screenshot()'方法*会带走第二个'done'参数,它看起来像一个回调,尽管它直接传递给phantomjs,我不知道它是如何处理的。它所调用的render()方法是同步的,所以无论如何你在每次迭代中间都会有一个很大的同步动作。 – Jason 2014-10-16 19:04:41
我已经用我在源代码中看到的东西更新了我的答案。 – Jason 2014-10-16 19:10:33