Как выполнить последовательно несколько асинхронных задач используя GDC?
GDC отлично помогает выполнить асинхронно независимые задачи. Но у меня возникла обратная задача - мне надо выполнить последовательно несколько асинхронных задач и я мощно затупил на этом этапе.
Вкратце задача такая.
1) Приложение подписано на обновление информации в Apple Health.
2) Я сам добавляю несколько записей в Apple Health (API добавления асинхронный)
3) Я еще не успеваю обработать ответ о записи в Health, как мне уже приходит от Health обновленная информация. И эта информация (по сути данные о моей же транзакции) начинает конфликтовать с моим незавершенным процессом.
Мне надо полученное уведомление от Apple Health получить, но поставить в очередь и начинать его обрабатывать только после того как я получу completion handler от записи в Apple Health.
Я пробую задачу записи и ответ от Health добавлять в одну serial queue. Но это не решает проблему. Надо как-то тормозить обработку этой очереди до момента обработки completion handler от записи в Health.
Намекните, пожалуйста, как мне разрешить эту ситуацию.
Я знаком с концепцией Dispatch Groups, но не вижу им применения конкретно в данном случае.
Если бы я бы инициатором всех задач, которые мне надо скоординировать, тут бы группы сгодились.
Но уведомление от Apple Health приходит в независящий от меня момент.
Как бы вы посоветовали применить Dispatch Groups в этом случае?
boobooking, да. Невнимательно прочитал исходный пост. Пожалуй, здесь могут быть операции (Operations) более уместны, если ничего не путаю. Самому с ними не доводилось тесно общаться. Некоторое понимание получил после прочтения книги Mastering iOS 11 Programming