diff options
Diffstat (limited to 'promises.lua')
-rw-r--r-- | promises.lua | 38 |
1 files changed, 19 insertions, 19 deletions
diff --git a/promises.lua b/promises.lua index 50189ce..97cd20e 100644 --- a/promises.lua +++ b/promises.lua @@ -44,6 +44,25 @@ function PromisePrototype:__reject_raw(reason) assert(any_child, "Uncaught (in promise): " .. reason) end +function PromisePrototype:then_(on_resolve, on_reject) + local promise = Promise() + promise.__on_resolve = on_resolve + promise.__on_reject = on_reject + + self:__add_child(promise) + + return promise +end + +function PromisePrototype:catch(func) + local promise = Promise(function() end) + promise.__on_reject = func + + self:__add_child(promise) + + return promise +end + function PromisePrototype:resolve(...) assert(self.state == "pending") @@ -64,25 +83,6 @@ function PromisePrototype:reject(reason) end end -function PromisePrototype:then_(on_resolve, on_reject) - local promise = Promise() - promise.__on_resolve = on_resolve - promise.__on_reject = on_reject - - self:__add_child(promise) - - return promise -end - -function PromisePrototype:catch(func) - local promise = Promise(function() end) - promise.__on_reject = func - - self:__add_child(promise) - - return promise -end - Promise = setmetatable({}, { __call = function(_, resolver) local promise = { |