节点骑士呼叫的队列

时间:2017-07-06 07:22:23

标签: javascript node.js web-scraping node-horseman

我正在开发一个网络刮刀(在早期阶段),我打算做x骑手电话。这个调用是基于promise的,但我希望调用是顺序的,当一个完成时,下一个启动。

我该如何实现这种行为?

1 个答案:

答案 0 :(得分:0)

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

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

此处asyncCall是您需要调用的任何函数。它需要一些参数并返回Promise

所以你基本上等待一个电话的结果然后再调用第二个电话。

然而,当需要进行大量调用时,这可能变得相当笨拙。如果您正在使用async/await,那么您应该为新项目工作,您可以更好地编写代码:

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

或者,甚至更好:

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