Как правильно изменить Request
, выполняющее асинхронную задачу перед выполнением запроса?
Таким образом, любой запрос Rn должен стать прозрачно Tn, а затем Rn.
Немного предыстории здесь : Задача - это сторонний SDK, который отправляет токен, который мне нужно использовать в качестве заголовка для исходного запроса.
Моя идея - украсить Rn, но при этом мне нужно преобразовать мою задачу Tn в сиесту Request
, которую я могу затем соединить.
Так что я завернул асинхронную задачу и приковал ее к исходному запросу.Таким образом, любой Rn
превратится в Tn.chained { .passTo(Rn) }
Таким образом, это новое поведение полностью прозрачно для всего приложения.
Проблема
При выполнении этого моего кода происходит сбой во внутреннем предварительном условии Siesta: precondition(completedValue == nil, "notifyOfCompletion() already called")
В моем пользовательском запросе AsyncTaskRequest я собираю обратные вызовыдля успеха, неудачи, прогресса и т. д., чтобы вызвать их в главной очереди, когда SDK доставляет токен.
Я заметил, что удаление всех сохраненных обратных вызовов после их выполнения, сбой исчезает, но, честно говоря, яне нашел причину почему.
Я надеюсь, что достаточно информации для некоторых подсказок или предложений.Заранее спасибо.