ManualResume

一个 Swift 包,提供了一种灵活的方式来使用标签管理异步 Swift 代码中的手动暂停和恢复。ManualResume 允许暂停执行,直到满足条件或操作被取消。这在需要根据某些事件或状态协调异步任务的场景中特别有用。

这个 Swift 包完全由 ChatGPT 创建,包括此 README(除了此注释)。

这是完整对话

特性

安装

Swift 包管理器

您可以通过 Swift 包管理器将 ManualResume 添加到您的项目中。将以下内容添加到您的 Package.swift 文件中

    dependencies: [
        .package(url: "https://github.com/mrtksn/ManualResume.git", from: "1.0.0")
    ]

用法

基本用法

在您的 Swift 文件中导入 ManualResume。

    import ManualResume

使用 ManualResume.shared.isReady(_:) 暂停执行,并使用 ManualResume.shared.resume(_:) 恢复执行

    Task {
        await ManualResume.shared.isReady("loadingData")
        // This code will execute after 'resume("loadingData")' is called.
        print("Data loading resumed")
    }
    
    // Resume the execution
    ManualResume.shared.resume("loadingData")

取消

使用 ManualResume.shared.cancel(_:) 取消任务

    Task {
        do {
            try await ManualResume.shared.isReady("loadingData")
            print("Data loading resumed")
        } catch {
            print("Data loading was cancelled")
        }
    }
    
    // Cancel the execution
    ManualResume.shared.cancel("loadingData")

许可

ManualResume 是在 MIT 许可证下发布的。有关更多详细信息,请参阅 LICENSE 文件。