异步承诺在For循环中

时间:2017-05-22 14:20:09

标签: javascript asynchronous es6-promise

如果for循环内部为真,我想每次都获得一条路线。

按预期显示if HIT ${j},然后getSinglePart(partPath)点击,按预期显示log 1,然后在{res之后立即返回getSinglePart(partPath).then(res) 1}}。

但是log 1在for循环结束后立即显示所有路由!

为什么它甚至会返回一个承诺?以及如何解决这个问题?

提前致谢:)

getSinglePart().then((res))

1 个答案:

答案 0 :(得分:0)

所描述的行为似乎是正确的,因为你本质上是安排一堆'tempDirectionsService.route'函数进行异步处理,然后退出你的循环,然后等待'tempDirectionsService.route'完成(每个'然后'打印'每个'tempDirectionsService.route'完成,没有特别的顺序,可能在循环期间或可能在它之后)。如果您的目标是在继续循环的下一次迭代之前等待当前计划的'tempDirectionsService.route'完成 - 您将不得不相应地重写您的循环。例如:

JavaScript ES6 promise for loop

Correct way to write loops for promise.