gpt4 book ai didi

request - 如何在执行下一个操作之前等待请求完成(Xcode 11)

转载 作者:行者123 更新时间:2023-12-04 10:49:44 25 4
gpt4 key购买 nike

我有一个允许在 firebase 上获取数据的代码。我需要等到请求得到满足才能执行下一个操作。

我试过这样的事情:

var a = [String : Any]()
let group = DispatchGroup()
group.enter()

DispatchQueue.main.async {
dbRef.child("results/users").observeSingleEvent(of: .value) { (snapshot) in
if let res = snapshot.value as? [String:Any] {
a = res
}
}
}

group.notify(queue: .main) {
print(a)
}

但它不起作用:我预计这会显示 a 的值。 (用于从 firebase 检索数据的代码有效。)相反,不显示任何内容。

有人有想法吗?
谢谢

最佳答案

你可以用这个解决它:

var a: [String:Any]

func myFunction(completion:@escaping (Bool) -> () ) {

DispatchQueue.main.async {
dbRef.child("results/users").observeSingleEvent(of: .value) { (snapshot) in
if let res = snapshot.value as? [String:Any] {
a = res
}
}
}


myFunction { (status) in
if status {
print(a!)
}
}

关于request - 如何在执行下一个操作之前等待请求完成(Xcode 11),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59545172/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com