Как синхронизировать l oop в java, чтобы я мог вручную увеличивать значение l oop (когда выполнение завершено) - PullRequest
0 голосов
/ 10 апреля 2020

У меня есть простой сценарий.

Я хочу сделать вызов асинхронного c метода (возможно, вызова API) внутри l oop. Я хочу вызывать один и тот же API несколько раз, но не выполняю следующий вызов API, пока не завершится предыдущий.

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

Приведенный выше метод будет запускать l oop 10 раз в обычном режиме, не ожидая API вызов метода будет завершен. то, что я хочу сделать, это вызвать следующий API после завершения предыдущего.

Например: -

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

Я пытался использовать while l oop, но это было слишком медленно и не надежный.

1 Ответ

1 голос
/ 10 апреля 2020

Вы можете использовать рекурсию. Что-то вроде этого:

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

Затем вы бы вызвали функцию следующим образом: makeAPICalls(10)

...