微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何快速从递归函数中转义到初始调用位置?

如何解决如何快速从递归函数中转义到初始调用位置?

var currentCount = 0
let totalCount = 100

func myEscapingRecursiveFunction(_ json: String,done: @escaping (Bool) -> Void) {
    
currentCount+=1

    if currentCount == totalCount {
        
        done(true)
    }
    else {
        myEscapingRecursiveFunction("xyz") { done in
        // what should I do here????
    } 
}

打电话

 // (Initially called here)
myEscapingRecursiveFunction("xyz") { done in 
    if done {
        print("completed") // I want to get response here after the recursion is finished
    }
}

我希望我的函数仅在当前计数等于总计数时转义,否则它应该递归,问题是我想在最初调用它的地方得到响应,但它将始终执行上次调用的完成处理程序代码。此处:

enter image description here

解决方法

您只需要将相同的转义块传递给您的递归函数。

所以像这样调用你的函数。

myEscapingRecursiveFunction("xyz",done: done)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。