等待 apicall 完成,然后继续

时间:2020-12-23 21:26:04

标签: swift api

我是 swift 的新手,因为我是一名后端开发人员,所以我想我会尝试制作一个应用程序, 了解我从我制作的 api 返回的数据是如何处理的。我有时也做前端,但它在网站上:D

在 c# 中,我知道 async/await 可以让代码在继续之前等待获得结果。我尝试过使用完成处理程序和 group.enter()、group.leave(),但都没有用,或者我没有做对。我知道 asynce/await 还不是一个东西,很快,或者我读过。

这是我的代码,我现在有:

struct vuItem:Decodable {
var date:String
var temperatureC:Int
var temperatureF:Int
var summary:String

}
var vuItems:[vuItem] = [vuItem]()

func getVejr() -> [vuItem] {

let url = URL(string: "http://192.168.137.1:90/weatherforecast")
var result = [vuItem]()
let session = URLSession.shared

let task = session.dataTask(with: url!, completionHandler: { data, response, error in
    // Check the response
    print(error)
    print(response)
    do {
        result = try! JSONDecoder().decode([vuItem].self, from: data!)
        print(result[0].date)
    }
    })
    task.resume()
    return result
}

vuItems = getVejr()

vuItems.forEach { (item) in
    print(item.date)
}

0 个答案:

没有答案