Swift一个接一个地运行3个函数

时间:2016-11-14 01:28:17

标签: swift

我想知道是否有人可以帮助我运行依赖前一个功能的信息来运行的3个功能。 这是我在上一篇文章中找到的关于如何让2工作的代码:

func firstTask(completion: (success: Bool) -> Void) {
    // Do something

    // Call completion, when finished, success or faliure
    completion(success: true)
}

//And use your completion block like this:
firstTask { (success) -> Void in
    if success {
       // do second task if success
       secondTask()
    }
}

但是如果你希望第二个函数在第二个函数完成后运行,它会在哪里运行? 对不起,如果这是一个非常基本的问题,但我仍然掌握了编程和Swift。

感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

你可以这样声明(在操场上测试)

node_modules

您可以通过ReactiveCocoaRxSwift学习反应式编程来避免这种回调地狱。

答案 1 :(得分:1)

最好将结果作为返回值返回,并使用中间变量将链函数组合在一起。

尽量避免过度使用完成处理程序。他们可以使代码异常难以导航。尽可能优先选择返回值。

/