Changeset

9513:4f4f9823bd1d

util.promise: Some code relocation
author Matthew Wild <mwild1@gmail.com>
date Thu, 18 Oct 2018 12:12:52 +0100
parents 9512:439cf3bbe5f3
children 9514:9db707a86a25
files util/promise.lua
diffstat 1 files changed, 23 insertions(+), 23 deletions(-) [+]
line wrap: on
line diff
--- a/util/promise.lua	Thu Oct 18 12:11:50 2018 +0100
+++ b/util/promise.lua	Thu Oct 18 12:12:52 2018 +0100
@@ -55,18 +55,6 @@
 	return _resolve, _reject;
 end
 
-local function new(f)
-	local p = setmetatable({ _state = "pending", _next = next_pending, _pending_on_fulfilled = {}, _pending_on_rejected = {} }, promise_mt);
-	if f then
-		local resolve, reject = new_resolve_functions(p);
-		local ok, ret = pcall(f, resolve, reject);
-		if not ok and p._state == "pending" then
-			reject(ret);
-		end
-	end
-	return p;
-end
-
 local function wrap_handler(f, resolve, reject)
 	return function (param)
 		local ok, ret = pcall(f, param);
@@ -78,17 +66,16 @@
 	end;
 end
 
-function promise_methods:next(on_fulfilled, on_rejected)
-	return new(function (resolve, reject)
-		self:_next(
-			on_fulfilled and wrap_handler(on_fulfilled, resolve, reject) or nil,
-			on_rejected and wrap_handler(on_rejected, resolve, reject) or nil
-		);
-	end);
-end
-
-function promise_methods:catch(on_rejected)
-	return self:next(nil, on_rejected);
+local function new(f)
+	local p = setmetatable({ _state = "pending", _next = next_pending, _pending_on_fulfilled = {}, _pending_on_rejected = {} }, promise_mt);
+	if f then
+		local resolve, reject = new_resolve_functions(p);
+		local ok, ret = pcall(f, resolve, reject);
+		if not ok and p._state == "pending" then
+			reject(ret);
+		end
+	end
+	return p;
 end
 
 local function all(promises)
@@ -126,6 +113,19 @@
 	end);
 end
 
+function promise_methods:next(on_fulfilled, on_rejected)
+	return new(function (resolve, reject) --luacheck: ignore 431/resolve 431/reject
+		self:_next(
+			on_fulfilled and wrap_handler(on_fulfilled, resolve, reject) or nil,
+			on_rejected and wrap_handler(on_rejected, resolve, reject) or nil
+		);
+	end);
+end
+
+function promise_methods:catch(on_rejected)
+	return self:next(nil, on_rejected);
+end
+
 return {
 	new = new;
 	resolve = resolve;