diff options
| author | Andrej Mihajlov <and@mullvad.net> | 2021-09-14 11:01:39 +0200 |
|---|---|---|
| committer | Andrej Mihajlov <and@mullvad.net> | 2021-09-15 10:58:43 +0200 |
| commit | 24b7214a9261c0f841ec47757fc26035a1126048 (patch) | |
| tree | 2692deca7290f729f7be08c9a0feaf3259281fe6 | |
| parent | a8b3bcde29e9e2f334f2c4b80ee6b5b8d25167e2 (diff) | |
| download | mullvadvpn-24b7214a9261c0f841ec47757fc26035a1126048.tar.xz mullvadvpn-24b7214a9261c0f841ec47757fc26035a1126048.zip | |
Promise: add deferred
| -rw-r--r-- | ios/MullvadVPN/Promise/Promise.swift | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/ios/MullvadVPN/Promise/Promise.swift b/ios/MullvadVPN/Promise/Promise.swift index 1e8d75be4f..91aa4ebdef 100644 --- a/ios/MullvadVPN/Promise/Promise.swift +++ b/ios/MullvadVPN/Promise/Promise.swift @@ -26,6 +26,13 @@ final class Promise<Value> { return Self.init(value: value) } + /// Returns Promise with lazily resolved value. + class func deferred(_ producer: @escaping () -> Value) -> Self { + return Self.init { resolver in + resolver.resolve(value: producer()) + } + } + /// Initialize Promise with the execution block. init(body: @escaping (PromiseResolver<Value>) -> Void) { state = .pending(body, nil) |
