我的博客文章存储在远程数据库中。用户可以对每个帖子进行评分和/或评论。所以我需要发出1或2个不同的网络请求。但我必须等到他们(或它)完成。
以下方案的最佳做法是什么:
func updateRatingAndComment (){
if commentTextView.text != "" {
updateComment()
}
if ratingView.rating != 0.0 {
updateRating()
}
}
updateComment()
和updateRating()
是Alamofire电话。
我尝试使用调度组但失败了。我正在考虑使用回调,但这对我来说似乎没有意义。
答案 0 :(得分:2)
试试这个:
let group = DispatchGroup() // Controller property
.....
if commentTextView.text != "" {
group.enter()
updateComment() // self?.group.leave() inside callback
}
if ratingView.rating != 0.0 {
group.enter()
updateRating() // self?.group.leave() inside callback
}
group.notify(queue: .main) { [weak self] in
// Do something
}
....