【问题标题】:How to send simultaneous request with Alamofire?如何使用 Alamofire 同时发送请求?
【发布时间】:2020-08-13 02:24:15
【问题描述】:

嘿,我正在使用“Alamofire”发送帖子请求。首先我发送Balance 请求,然后我发送setAppStatus 请求。我使用单个函数来处理响应。在我收到Balance 的回复之前,已发送SetAppStatus。我使用reqName 来处理回复。

if reqName=="getBalance"
    {
       \\ handling Api responses
    }
    if reqName=="setAppStatus"
    {
       \\ handling Api responses
    }

使用上面的代码,我发送Balance 请求并得到响应。但是当我打印reqName 时,它是setAppStatus。它覆盖。我该如何解决这个问题?

【问题讨论】:

    标签: swift post alamofire response


    【解决方案1】:

    您需要对其进行重构,这样您就不会使用父类的单个共享属性来确定您正在处理两个并发请求中的哪一个。那是行不通的。最重要的是,停用此 reqName 属性。

    有两个明显的选择:

    1. 一种解决方案是只为这两个请求提供两个单独的完成处理程序方法。我知道你可能觉得你通过一种方法来保持简单,但是如果你在这个通用的响应处理方法中隐藏了很大的if-else 块,这很好地表明你应该考虑将它分解。

    2. 如果您决定使用单一的响应处理方法,而不是依赖两个并发请求共享的某些属性,您将希望查看 Alamofire 响应方法传递的对象到他们各自的关闭。该对象内部是一个 request 属性,您可以从中推断出您正在处理的两个响应中的哪一个(例如查看请求的 URL)。或者在响应处理方法中捕获你在准备请求时使用的一些参数。

    第一个选项可能是最好的:它使您的方法尽可能简单,每个方法都有一个单一的职责,即解析特定的响应。

    【讨论】:

      猜你喜欢
      • 2017-02-19
      • 1970-01-01
      • 1970-01-01
      • 2019-04-21
      • 2017-03-16
      • 2019-12-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多