Swift 4中的异步返回功能

时间:2017-12-29 18:40:27

标签: swift

这是我的代码:

func checkIfExist(property: String, isEqualTo: Any) -> Bool {
    let query = db.collection("users").whereField(property, isEqualTo: isEqualTo)
    query.getDocuments { (snapshot, error) in
        guard let snapshot = snapshot?.documents else { print(error!); return }
        print("There is \(snapshot.count) items.")
        if snapshot.count == 1 {
            return true
        } else {
            return false
        }
    }
}

Xcode正在大吼大叫,我理解为什么,但我不知道如何修复它。在这种情况下如何退货?我应该使用像PromiseKit这样的库吗?感谢。

1 个答案:

答案 0 :(得分:1)

你没有。异步函数无法在函数返回时返回结果。您需要编写函数来完成闭包。然后调用它并在完成闭包中完成异步任务时传入要执行的代码。这个板上有几十个这样的例子。我写了一些示例项目来说明它。

检查此链接,例如:

https://github.com/DuncanMC/Async_demo.git