diff --git a/lib/README.md b/lib/README.md index 49e4c27..a47b288 100644 --- a/lib/README.md +++ b/lib/README.md @@ -163,13 +163,13 @@ docs: - name: resolve desc: Creates an immediately resolved Promise with the given value. static: true - params: "value: T" - returns: Promise + params: "value: ...any" + returns: Promise<...any> - name: reject desc: Creates an immediately rejected Promise with the given value. static: true - params: "value: T" - returns: Promise + params: "value: ...any" + returns: Promise<...any> - name: all desc: | Accepts an array of Promises and returns a new promise that: diff --git a/lib/init.lua b/lib/init.lua index e3432d6..f957487 100644 --- a/lib/init.lua +++ b/lib/init.lua @@ -230,18 +230,20 @@ end --[[ Create a promise that represents the immediately resolved value. ]] -function Promise.resolve(value) +function Promise.resolve(...) + local length, values = pack(...) return Promise.new(function(resolve) - resolve(value) + resolve(unpack(values, 1, length)) end) end --[[ Create a promise that represents the immediately rejected value. ]] -function Promise.reject(value) +function Promise.reject(...) + local length, values = pack(...) return Promise.new(function(_, reject) - reject(value) + reject(unpack(values, 1, length)) end) end diff --git a/lib/init.spec.lua b/lib/init.spec.lua index c8d0d90..9f64bd2 100644 --- a/lib/init.spec.lua +++ b/lib/init.spec.lua @@ -90,11 +90,12 @@ return function() describe("Promise.resolve", function() it("should immediately resolve with a value", function() - local promise = Promise.resolve(5) + local promise = Promise.resolve(5, 6) expect(promise).to.be.ok() expect(promise:getStatus()).to.equal(Promise.Status.Resolved) expect(promise._values[1]).to.equal(5) + expect(promise._values[2]).to.equal(6) end) it("should chain onto passed promises", function() @@ -110,11 +111,12 @@ return function() describe("Promise.reject", function() it("should immediately reject with a value", function() - local promise = Promise.reject(6) + local promise = Promise.reject(6, 7) expect(promise).to.be.ok() expect(promise:getStatus()).to.equal(Promise.Status.Rejected) expect(promise._values[1]).to.equal(6) + expect(promise._values[2]).to.equal(7) end) it("should pass a promise as-is as an error", function()