在请求发生之前更改Request
执行异步任务的正确方法是什么?
所以任何请求 Rn 都需要变成透明的 Tn 然后 Rn。
这里有一点背景:任务是一个第 3 方 SDK,它分派我需要用作原始请求的标头的令牌。
我的想法是装饰 Rn,但在这样做时,我需要将我的 Tn 任务转换为Request
我可以链接的 Siesta。
所以我包装了异步任务并链接到我的原始请求。因此任何Rn
都会变成Tn.chained { .passTo(Rn) }
这样,这种新行为对整个应用程序是完全透明的。
问题
这样做我的代码最终会在 Siesta 内部前提条件下崩溃:
precondition(completedValue == nil, "notifyOfCompletion() already called")
在我的自定义 AsyncTaskRequest 中,我收集成功、失败、进度等的回调,以便在 SDK 传递令牌时在主队列上触发它们。
我注意到一旦执行删除所有存储的回调,崩溃就会消失,但老实说我没有找到原因。
我希望有足够的信息来提供一些提示或建议。先感谢您。