0

我正在使用以下代码进行多部分数据上传

let postValue = try await AF.upload(multipartFormData: { multipartFormData in
        multipartFormData.append("123".data(using: .utf8, allowLossyConversion: false)!, withName: "number1")
        multipartFormData.append("456".data(using: .utf8, allowLossyConversion: false)!, withName: "number2")
        multipartFormData.append("SomeLocation".data(using: .utf8, allowLossyConversion: false)!, withName: "location")
    }, to: "http://httpbin.org/post").uploadProgress { progress in
        debugPrint(progress)
    }.serializingDecodable(PostResponse.self).value

uploadProgress这种情况下,将用作闭包,这有点反对尝试等待。有没有更好的使用方法?

4

1 回答 1

0

有一个你可以使用的await能力StreamOf<Progress>,但你需要单独处理异步流,所以继续使用闭包 API 通常是最方便的。

let request = AF.upload(...)
Task {
  for await progress in request.uploadProgress() {
    debugPrint(progress)
  }
}
let value = try await request.serializingDecodable(PostResponse.self).value
于 2022-01-03T20:44:28.350 回答