node-horseman调用队列

Queue of node-horseman calls

我正在开发一个网络抓取工具(处于早期阶段),我计划进行 x horseman 调用。此调用是基于承诺的,但我希望调用按顺序进行,当一个完成时,下一个开始。

我怎样才能实现这种行为?

您可以简单地执行以下操作:

asyncCall(args[1]).done(() => asyncCall(args[2]))

此处asyncCall是您需要调用的任何函数。它需要一些参数和 returns a Promise.

所以你基本上是在等待第一个调用的结果,然后调用第二个调用。

但是,当需要进行大量调用时,这会变得非常笨拙。如果您正在使用 async/await,考虑到您正在处理一个新项目,您应该使用它,您可以更好地编写代码,例如:

await asyncCall(args[1]);
await asyncCall(args[2]);
...

或者,甚至更好:

for (let arg of args) {
    await asyncCall(arg)
}