Make Promise.new refer to the created promise as

This commit is contained in:
Lucien Greathouse 2018-09-14 13:47:51 -07:00
parent 639f0e8419
commit 9bda3e68ea

View file

@ -109,7 +109,7 @@ Promise.Status = {
end) end)
]] ]]
function Promise.new(callback) function Promise.new(callback)
local promise = { local self = {
-- Used to locate where a promise was created -- Used to locate where a promise was created
_source = debug.traceback(), _source = debug.traceback(),
@ -134,25 +134,25 @@ function Promise.new(callback)
_queuedReject = {}, _queuedReject = {},
} }
setmetatable(promise, Promise) setmetatable(self, Promise)
local function resolve(...) local function resolve(...)
promise:_resolve(...) self:_resolve(...)
end end
local function reject(...) local function reject(...)
promise:_reject(...) self:_reject(...)
end end
local _, result = wpcallPacked(callback, resolve, reject) local _, result = wpcallPacked(callback, resolve, reject)
local ok = result[1] local ok = result[1]
local err = result[2] local err = result[2]
if not ok and promise._status == Promise.Status.Started then if not ok and self._status == Promise.Status.Started then
reject(err) reject(err)
end end
return promise return self
end end
--[[ --[[