2020-05-05 03:56:49 +00:00
# Next
- Runtime errors are now represented by objects. You must call tostring on rejection values before assuming they are strings (this was always good practice, but is required now).
2020-05-05 03:57:08 +00:00
- Yielding is now allowed in Promise.new, andThen, and Promise.try executors.
2020-05-05 03:56:49 +00:00
- Errors now have much better stack traces due to using xpcall internally instead of pcall.
- Stack traces now be more direct and not include as many internal calls within the Promise library.
- Chained promises from resolve() or returning from andThen now have improved rejection messages for debugging.
2020-05-05 03:57:08 +00:00
- Promises now have a __tostring metamethod, which returns `Promise(Resolved)` or whatever the current status is.
- Promise.async has been renamed to Promise.defer (Promise.async references same function for compatibility)
2020-05-05 03:56:49 +00:00
- Improve test coverage for asynchronous and time-driven functions
2019-11-13 04:07:43 +00:00
# 2.5.1
- Fix issue with rejecting with non-string not propagating correctly.
2019-09-29 06:05:04 +00:00
# 2.5.0
2019-09-28 04:13:30 +00:00
2019-09-28 05:56:58 +00:00
- Add Promise.tap
- Fix bug with C functions not working when passed to andThen
2019-09-28 04:13:30 +00:00
- Fix issue with Promise.race/all always cancelling instead of only cancelling if the Promise has no other consumers
2019-09-28 05:56:58 +00:00
- Make error checking more robust across many methods.
- Promise.Status members are now strings instead of symbols, and indexing a non-existent value will error.
2019-09-28 21:38:35 +00:00
- Improve stack traces
- Promise.promisify will now turn errors into rejections even if they occur after a yield.
2019-09-28 22:54:49 +00:00
- Add Promise.try
2019-09-29 02:03:06 +00:00
- Add `done` , `doneCall` , `doneReturn`
- Add `andThenReturn` , `finallyReturn`
2019-09-29 04:07:32 +00:00
- Add `Promise.delay` , `promise:timeout`
2019-09-29 06:03:22 +00:00
- Add `Promise.some` , `Promise.any`
- Add `Promise.allSettled`
- `Promise.all` and `Promise.race` are now cancellable.
2019-09-28 04:13:30 +00:00
2019-09-23 02:58:23 +00:00
# 2.4.0
- `Promise.is` now only checks if the object is "andThennable" (has an `andThen` method).
2019-09-18 21:58:07 +00:00
# 2.3.1
- Make unhandled rejection warning trigger on next Heartbeat
2019-09-18 20:42:15 +00:00
# 2.3.0
- Remove `Promise.spawn` from the public API.
- `Promise.async` still inherits the behavior from `Promise.spawn` .
- `Promise.async` now wraps the callback in `pcall` and rejects if an error occurred.
- `Promise.new` has now has an explicit error message when attempting to yield inside of it.
2019-09-14 02:58:32 +00:00
# 2.2.0
- `Promise.promisify` now uses `coroutine.wrap` instead of `Promise.spawn`
2019-09-13 00:13:29 +00:00
# 2.1.0
- Add `finallyCall` , `andThenCall`
- Add `awaitValue`
2019-09-12 07:58:56 +00:00
# 2.0.0
- Add Promise.race
- Add Promise.async
- Add Promise.spawn
- Add Promise.promisify
- `finally` now silences the unhandled rejection warning
- `onCancel` now returns if the Promise was cancelled at call time.
- Cancellation now propagates downstream.
- Add `Promise:awaitStatus`
- Calling `resolve` with a Promise while the resolving Promise is cancelled instantly cancels the passed Promise as an optimization.
- `finally` now passes the Promise status as a parameter.