【问题标题】:How to make a synchronous API call which is nested inside another API failure callback in Swift如何在 Swift 中进行嵌套在另一个 API 失败回调中的同步 API 调用
【发布时间】:2021-09-05 18:11:37
【问题描述】:

在 getRatingReviewFromServer() 中,如果我获得成功,一切都很好,但如果我失败了,我需要调用另一个 API refreshToken() 如果我在 refreshToken() 调用上获得成功,我将使用新数据再次调用 getRatingReviewFromServer() 我将从 refreshToken() 成功。 我怎样才能用最好的方法实现这个目标?

    func getData(){
        service.getRatingReviewFromServer(succeed: {(message) in
                // my code code
                //exits
            }, failure: {message in
                service.refreshToken(succeed: {
                    data in
                    // call RatingReviewService().getRatingReviewFromServer() again
                }, failure: {
                    msg in
                    //exits
                })
         })
     }

我该怎么做?

【问题讨论】:

  • 使用闭包。

标签: ios swift swift3


【解决方案1】:
func getData() {
    service.getRatingReviewFromServer(succeed: { (message) in
        // my code code
        //exits
     }, failure: { [weak self] (message) in
         service.refreshToken(succeed: { [weak self] (data) in
             // call RatingReviewService().getRatingReviewFromServer() again
            
             // You can restart the call
             self?.getData()
             
         }, failure: {
             msg in
             //exits
         })
     })
}

【讨论】:

  • 确保限制最大调用次数,因为如果不这样做,此代码可能会在服务器端出现问题时创建无限循环。
  • 是的,我有一个标志。
猜你喜欢
  • 2022-01-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-10-01
  • 2014-08-10
  • 2018-06-10
  • 2021-06-29
相关资源
最近更新 更多