summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorAndrej Mihajlov <and@mullvad.net>2021-09-14 11:01:39 +0200
committerAndrej Mihajlov <and@mullvad.net>2021-09-15 10:58:43 +0200
commit24b7214a9261c0f841ec47757fc26035a1126048 (patch)
tree2692deca7290f729f7be08c9a0feaf3259281fe6
parenta8b3bcde29e9e2f334f2c4b80ee6b5b8d25167e2 (diff)
downloadmullvadvpn-24b7214a9261c0f841ec47757fc26035a1126048.tar.xz
mullvadvpn-24b7214a9261c0f841ec47757fc26035a1126048.zip
Promise: add deferred
-rw-r--r--ios/MullvadVPN/Promise/Promise.swift7
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)