不成功如何重新提交 URLRequest?

How do I resubmit URLRequest when unsuccessful?

我不确定如何在不成功时重新提交 URLRequest。

我有一个调用多个 API 的函数。在其中一个 API 请求中,大约有一半的时间第一次尝试不成功,我必须再次按下我的应用程序上的按钮才能再次启用它 运行 功能,直到它通过。我已经将我的代码追踪到它被捕获的确切位置,但我不确定如何处理它以继续尝试请求直到成功。下面是我的代码。

        let request = URLRequest(url: URL(string: urlNew)!)

        let session = URLSession.shared

        let task = session.dataTask(with: request, completionHandler: {data, response, error -> Void in
            // other logic happens here
        })

大部分时间它都顺利通过,一切都按预期进行。我如何让它继续尝试请求,但如果它不成功?它可以达到 "let task ..." 就好了,但这就是它被赶上的地方。供参考:

urlNew = "MyAPI String value is here"

请求不成功时可以递归调用函数

func callAPI(urlNew:String) {
    let request = URLRequest(url: URL(string: urlNew)!)

    let session = URLSession.shared

    let task = session.dataTask(with: request, completionHandler: {data, response, error -> Void in
        // other logic happens here
        guard let data = data, error == nil else {
            self.callAPI(urlNew:urlNew)
            return
        }
    })
    task.resume()
}