首页 > 解决方案 > 如何在 Swift 中进行嵌套在另一个 API 失败回调中的同步 API 调用

问题描述

在 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
                })
         })
     }

我怎么能做这样的事情?

标签: iosswiftswift3

解决方案


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
         })
     })
}

推荐阅读