Build Codecov Platforms Swift 6.0

介绍

swift-timeout 是一个轻量级的封装库,它围绕着 Task,并在给定的超时时间内执行闭包。

安装

Timeout 可以通过 Swift Package Manager 进行安装。

注意: Timeout 需要 Swift 5.10 版本,并且 Xcode 版本需要在 15.4 或更高版本。它可以在 iOS 13+、tvOS 13+、macOS 10.15+、Linux 和 Windows 上运行。要使用 Swift Package Manager 进行安装,请将它添加到你的 Package.swift 文件的 dependencies: 部分。

.package(url: "https://github.com/swhitty/swift-timeout.git", .upToNextMajor(from: "0.2.0"))

用法

你需要提供一个闭包和一个 Instant,用于设定子任务的超时时间。 如果子任务未在指定时间内完成,则会抛出 TimeoutError 错误。

import Timeout

let val = try await withThrowingTimeout(after: .now + .seconds(2)) {
  try await perform()
}

你也可以提供 TimeInterval

let val = try await withThrowingTimeout(seconds: 2.0) {
  try await perform()
}

注意:当超时到期时,执行闭包的任务会被取消,并抛出 TimeoutError 错误。

鸣谢

Timeout 的主要工作由 Simon Whitty 完成。

(完整贡献者列表)