如何使用async-http-client

时间:2019-12-21 08:52:05

标签: swift swift-nio

我正在尝试执行async-http-client doku的示例。但不幸的是,闭包中的代码未执行。为什么?

import AsyncHTTPClient

let httpClient = HTTPClient(eventLoopGroupProvider: .createNew)
httpClient.get(url: "https://swift.org").whenComplete { result in
    print (result)
    switch result {
    case .failure(let error):
        print("failure")
    case .success(let response):
        if response.status == .ok {
            print("success")
        } else {
            print("error in response")
        }
    }
}

在控制台中,我得到: Program ended with exit code: 0 。因此成功执行。但是控制台中没有打印语句。

谢谢!

1 个答案:

答案 0 :(得分:1)

这是因为主线程在请求​​完成之前就已经执行了,因此除非您要求主线程等待httpclient,否则不会调用print语句

https://github.com/swift-server/async-http-client/issues/129