node-horseman 异步不工作?

node-horseman async not working?

我正在使用 node-horseman 来(希望)允许我执行异步 phantomjs 操作以实现异步无头浏览。数组中的数字在这个阶段是无关紧要的,我只是将代码剥离到最低限度以证明我遇到的问题。

当我 运行 下面的代码 运行 是异步的,但是,一旦我创建一个新的 Horseman,它就会停止 运行 异步。我知道这不是 运行ning 异步,因为输出(控制台记录数字)以线性方式发生,每个数字在统一的时间后显示。 运行 它是异步的,它应该是瞬时的,因为显示每个数字的开销应该是相同的,所以所有数字应该同时出现,就像它们在没有创建骑士对象时一样(如代码所示下面禁用了 horseman 对象。

var Horseman = require('node-horseman');
var async = require('async');
var testArray = [ 1, 2, 3, 4, 5 ];
function evaluate( item ) {
    console.log( item );
    /*It runs asynchronously but if the two lines below are activated it
    stops being async and runs synchronously, defeating the whole purpose
    of using horseman??*/
    //var horseman = new Horseman();
    //horseman.close();
}    
async.each( 
    testArray, 
    function( item, callback ) {
        evaluate( item )
        callback();
    },
    function( err ) {
        console.log( 'all complete' );
    }
)

非常感谢任何帮助。

我在使用 async 和 node-horseman 时也遇到了同样的问题。如果您使用 .forEachLimit 函数而不是 .each,您可以限制完成的请求数量。关于这个问题,我也在 Github 上开了一个问题:

https://github.com/johntitus/node-horseman/issues/28