我从Bmob云端数据库读数据,但是因为是异步读取的,所以来不及赋值给全局变量,程序就执行完了,请问这种情况要怎么保证先从云端数据库读完了数据,再执行后面的操作呢?
func searchAllData() {
let query:BmobQuery = BmobQuery(className: "youhuiquan")
query.findObjectsInBackground { (array, error) in
var i = 0
while(i<(array?.count)!){
let obj = array?[i] as! BmobObject
self.context = (obj.object(forKey: "title") as? String)!
self.url = (obj.object(forKey: "url") as? String)!
self.image_url = (obj.object(forKey: "image_url") as? String)!
i = i + 1
}
}
}
异步要么用回调函数,要么使用 async/await。
Swift用回调的方式吧。