首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在java中同步循环,以便我可以手动递增循环值(当某些执行完成时)

如何在java中同步循环,以便我可以手动递增循环值(当某些执行完成时)
EN

Stack Overflow用户
提问于 2020-04-10 16:47:58
回答 1查看 76关注 0票数 0

我有一个简单的场景。

我想在循环中调用异步方法(可能是api调用)。我想多次调用同一个api,但在前一个api调用完成之前不会执行下一个api调用。

代码语言:javascript
运行
复制
for(int i = 0; i < 10; i++){
   apicall{
      apiresult
   }
}

上述方法将正常运行循环10次,无需等待api调用方法完成。我想要做的是在前一个api完成后调用下一个api。

例如:

代码语言:javascript
运行
复制
for(int i = 0; i < 10; i++){
   apicall{
      apiresult
     // RUN NEXT LOOP AFTER THIS IS COMPLETE
   }
}

我试过使用while循环,但它太慢了,而且不可靠。

EN

回答 1

Stack Overflow用户

发布于 2020-04-10 16:59:42

你可以使用递归。大致是这样的:

代码语言:javascript
运行
复制
void makeAPICalls(int numberOfCalls) {
    numberOfCalls--;
    if (numberOfCalls > 0) {
        apiCall {
            apiResult
            // when result arrives call this again
            makeAPICalls(numberOfCalls)
        }
    }
}

然后,您可以像这样调用函数:makeAPICalls(10)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61136894

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档