UseCase 1.0.4

UseCase 1.0.4

测试已测试
Lang语言 SwiftSwift
许可证 MIT
发布上次发布2017年12月
SwiftSwift 版本3.0
SPM支持 SPM

Julian Alonso维护。



UseCase 1.0.4

UseCase

用例库。

用例基类,执行后可以使用.then.catch

任何用例子类都必须以一个OperationQueue初始化。
该类在一个Operation下执行代码,这意味着UseCase可以被挂起或取消。

如何使用。

创建一个类或结构体实现UseCaseRequest和其他UseCaseResponse。

然后创建一个具有您的UseCaseRequest和UseCaseResponse的UseCase的子类。
重写主方法,该方法接收一个操作对象。当您的代码完成后,设置operation.response或operation.error以结束代码的执行。

示例

struct TestRequest: UseCaseRequest {

}

struct TestResponse: UseCaseResponse {

}

enum TestError: Error {
    case noRequest
}

final class TestUseCase: UseCase<TestRequest, TestResponse> {

    override func main(request: TestRequest?, _ operation: UseCaseOperation<TestRequest, TestResponse>) {
        DispatchQueue.global(qos: .background).asyncAfter(deadline: .now() + .milliseconds(600)) {
            if request != nil {
                operation.response = TestResponse()
            } else {
                operation.error = TestError.noRequest
            }
        }
    }

}

//Using TestUseCase:
useCase.execute(TestRequest()).common {
    print("Im finished.")
}
.then { response in
    print("With response \(response)")
}
.catch { (error) in
    print("With error \(error)")
}


贡献

如果在您发现和报告问题时,请编写一个重现问题的测试并通过GitHub问题通知我。
如果您有任何改进它的想法,请分叉它,编写代码,测试它,然后向我发送拉取请求。

开发

Julián Alonso.

许可证

Apache 2.0许可证。有关详细信息,请参阅许可证文件。