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

标签 java android loops for-loop synchronous

我有一个简单的场景。

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

for(int i = 0; i < 10; i++){
   apicall{
      apiresult
   }
}

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

例如:-

for(int i = 0; i < 10; i++){
   apicall{
      apiresult
     // RUN NEXT LOOP AFTER THIS IS COMPLETE
   }
}

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

最佳答案

您可以使用递归。大致如下:

void makeAPICalls(int numberOfCalls) {
    numberOfCalls--;
    if (numberOfCalls > 0) {
        apiCall {
            apiResult
            // when result arrives call this again
            makeAPICalls(numberOfCalls)
        }
    }
}

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

关于java - 如何在java中同步循环,以便我可以手动增加循环值(当某些执行完成时),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61136894/

相关文章:

java - 如何使用mongodb 3.2使用范围查询

java - 如何在Java中停止命令行进程

loops - 在 OpenMP 中折叠三个 for 循环中的两个

python - 应用 Pandas 创建列方法和函数

android - 从 google play 下载应用程序时找不到您尝试购买的商品

c# - 如何将字符串列表拆分为较小的字符串列表 block

java - InterruptedIOException 使用 httpClient 4.3.3 for Android

java - 如何获得两个列表的笛卡尔积?

java - 字符集编码内存不足

Android 语音转文本问题