Android Call Rest API в цикле - PullRequest
1 голос
/ 25 марта 2019

Я новичок в Android, поэтому есть вопросы по поводу api звонков.

В настоящее время я использую Retrofit для выполнения моих вызовов API.

Вот пример моего вызова API с Retrofit

@POST("posts/new")
fun createPost(@Body post: Post, @Header("Authorization") token: String): Single<PostResult>

Итак, предположим, что у меня есть 10 постов, и мне нужно позвонить createPost 10 раз (Да, я знаю, что у меня может быть вход list на стороне BE, но ...).Лучший способ - перебирать сообщения (for/map) и отправлять их на сервер.

Но вот проблема:
- Как я могу отследить, что все звонки сделаны?

В JS у меня может быть что-то вроде Promise.all - могу ли я сделать что-то подобное в Android?

Я думал о подсчете законченных и запущенных запросов, но я думаю, что это немного уродливо, не?

Ответы [ 2 ]

0 голосов
/ 26 марта 2019

в вашем успешном ответе вам нужно снова вызвать метод get / post.после успеха вы знаете, что ваш вызов API выполнен, иначе он выдаст ошибку.

0 голосов
/ 26 марта 2019

Спасибо @ shkschneider

Ваш вопрос очень широк.Вы можете использовать RxJava для zip, или сопрограммы для async / await или другие методы.

Завершено использованием .zip

Single.zip(observables) { args -> args }
      .subscribeOn(Schedulers.io())
      .observeOn(AndroidSchedulers.mainThread())
      .subscribe({ ...Success }, { ...Failure })
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...