我正在开发一个Web抓取工具(处于早期阶段),我打算进行x骑马呼叫。该调用是基于promise的,但是我希望这些调用按顺序进行,当一个完成时,下一个开始。

我该如何实现这种行为?

最佳答案

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

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)
}

10-08 04:34