From 87937962ad66a8adadc601d1f364b80168c921fd Mon Sep 17 00:00:00 2001 From: Eryn Lynn Date: Wed, 12 Feb 2020 18:55:29 -0500 Subject: [PATCH] Add traceback piping to more functions --- default.project.json | 6 +++--- lib/init.lua | 14 +++++++------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/default.project.json b/default.project.json index c82378c..fb4fad6 100644 --- a/default.project.json +++ b/default.project.json @@ -2,9 +2,9 @@ "name": "lua-promise", "tree": { "$className": "DataModel", - "ReplicatedStorage": { - "$className": "ReplicatedStorage", - "Promise": { + "ServerScriptService": { + "$className": "ServerScriptService", + "Lib": { "$path": "lib" } } diff --git a/lib/init.lua b/lib/init.lua index f5a5521..525da4d 100644 --- a/lib/init.lua +++ b/lib/init.lua @@ -206,7 +206,7 @@ end function Promise.async(callback) local traceback = debug.traceback() local promise - promise = Promise.new(function(resolve, reject, onCancel) + promise = Promise._new(traceback, function(resolve, reject, onCancel) local connection connection = RunService.Heartbeat:Connect(function() connection:Disconnect() @@ -227,7 +227,7 @@ end ]] function Promise.resolve(...) local length, values = pack(...) - return Promise.new(function(resolve) + return Promise._new(debug.traceback(), function(resolve) resolve(unpack(values, 1, length)) end) end @@ -237,7 +237,7 @@ end ]] function Promise.reject(...) local length, values = pack(...) - return Promise.new(function(_, reject) + return Promise._new(debug.traceback(), function(_, reject) reject(unpack(values, 1, length)) end) end @@ -377,7 +377,7 @@ function Promise.allSettled(promises) return Promise.resolve({}) end - return Promise.new(function(resolve, _, onCancel) + return Promise._new(debug.traceback(), function(resolve, _, onCancel) -- An array to contain our resolved values from the given promises. local fates = {} local newPromises = {} @@ -429,7 +429,7 @@ function Promise.race(promises) assert(Promise.is(promise), (ERROR_NON_PROMISE_IN_LIST):format("Promise.race", tostring(i))) end - return Promise.new(function(resolve, reject, onCancel) + return Promise._new(debug.traceback(), function(resolve, reject, onCancel) local newPromises = {} local finished = false @@ -482,7 +482,7 @@ function Promise.promisify(callback) return function(...) local traceback = debug.traceback() local length, values = pack(...) - return Promise.new(function(resolve, reject) + return Promise._new(traceback, function(resolve, reject) coroutine.wrap(function() local ok, resultLength, resultValues = packResult(pcall(callback, unpack(values, 1, length))) if ok then @@ -546,7 +546,7 @@ do seconds = 0 end - return Promise.new(function(resolve, _, onCancel) + return Promise._new(debug.traceback(), function(resolve, _, onCancel) enqueue(resolve, seconds) onCancel(function()