Update docs

This commit is contained in:
Eryn Lynn 2020-06-02 00:54:36 -04:00
parent b7d6a935be
commit bcbd3385f4
4 changed files with 40 additions and 28 deletions

View file

@ -44,7 +44,8 @@ module.exports = {
'/lib/WhyUsePromises', '/lib/WhyUsePromises',
'/lib/Tour', '/lib/Tour',
'/lib/Examples', '/lib/Examples',
'/lib/', '/CHANGELOG',
'/lib/'
] ]
} }
} }

View file

@ -1,25 +1,36 @@
# Next # Changelog
## [3.0.0] - 2020-06-02
### Changed
- 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). - 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).
- New Promise Error class is exposed at `Promise.Error`, which includes helpful static methods like `Promise.Error.is`. - Yielding is now allowed in `Promise.new`, `andThen`, and `Promise.try` executors.
- Yielding is now allowed in Promise.new, andThen, and Promise.try executors. - Errors now have much better stack traces due to using `xpcall` internally instead of `pcall`.
- Errors now have much better stack traces due to using xpcall internally instead of pcall. - Stack traces will now be more direct and not include as many internal calls within the Promise library.
- 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.
- Chained promises from resolve() or returning from andThen now have improved rejection messages for debugging. - `Promise.async` has been renamed to `Promise.defer` (`Promise.async` references same function for compatibility)
- Promises now have a __tostring metamethod, which returns `Promise(Resolved)` or whatever the current status is. - 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) - `Promise:timeout()` now rejects with a `Promise.Error(Promise.Error.Kind.TimedOut)` object. (Formerly rejected with the string `"Timed out"`)
- Improve test coverage for asynchronous and time-driven functions - Attaching a handler to a cancelled Promise now rejects with a `Promise.Error(Promise.Error.Kind.AlreadyCancelled)`. (Formerly rejected with the string `"Promise is cancelled"`)
- Change Promise.is to be safe when dealing with tables that have an `__index` metamethod that creates an error. - Let `Promise:expect()` throw rejection objects
- Let Promise:expect() throw rejection objects
- Add Promise:now() (#23)
- Promise:timeout() now rejects with a `Promise.Error(Promise.Error.Kind.TimedOut)` object. (Formerly rejected with the string "Timed out")
- Attaching a handler to a cancelled Promise now rejects with a `Promise.Error(Promise.Error.Kind.AlreadyCancelled)`. (Formerly rejected with the string "Promise is cancelled")
# 2.5.1 ### Added
- New Promise Error class is exposed at `Promise.Error`, which includes helpful static methods like `Promise.Error.is`.
- Added `Promise:now()` (#23)
- Added `Promise.each` (#21)
- Added `Promise.retry` (#16)
- Added `Promise.fromEvent` (#14)
- Improved test coverage for asynchronous and time-driven functions
### Fixed
- Changed `Promise.is` to be safe when dealing with tables that have an `__index` metamethod that creates an error.
- `Promise.delay` resolve value (time passed) is now more accurate (previously passed time based on when we started resuming threads instead of the current time. This is a very minor difference.)
## [2.5.1]
- Fix issue with rejecting with non-string not propagating correctly. - Fix issue with rejecting with non-string not propagating correctly.
# 2.5.0 ## [2.5.0]
- Add Promise.tap - Add Promise.tap
- Fix bug with C functions not working when passed to andThen - Fix bug with C functions not working when passed to andThen
@ -36,31 +47,31 @@
- Add `Promise.allSettled` - Add `Promise.allSettled`
- `Promise.all` and `Promise.race` are now cancellable. - `Promise.all` and `Promise.race` are now cancellable.
# 2.4.0 ## [2.4.0]
- `Promise.is` now only checks if the object is "andThennable" (has an `andThen` method). - `Promise.is` now only checks if the object is "andThennable" (has an `andThen` method).
# 2.3.1 ## [2.3.1]
- Make unhandled rejection warning trigger on next Heartbeat - Make unhandled rejection warning trigger on next Heartbeat
# 2.3.0 ## [2.3.0]
- Remove `Promise.spawn` from the public API. - Remove `Promise.spawn` from the public API.
- `Promise.async` still inherits the behavior from `Promise.spawn`. - `Promise.async` still inherits the behavior from `Promise.spawn`.
- `Promise.async` now wraps the callback in `pcall` and rejects if an error occurred. - `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. - `Promise.new` has now has an explicit error message when attempting to yield inside of it.
# 2.2.0 ## [2.2.0]
- `Promise.promisify` now uses `coroutine.wrap` instead of `Promise.spawn` - `Promise.promisify` now uses `coroutine.wrap` instead of `Promise.spawn`
# 2.1.0 ## [2.1.0]
- Add `finallyCall`, `andThenCall` - Add `finallyCall`, `andThenCall`
- Add `awaitValue` - Add `awaitValue`
# 2.0.0 ## [2.0.0]
- Add Promise.race - Add Promise.race
- Add Promise.async - Add Promise.async

View file

@ -84,7 +84,7 @@ docs:
desc: "Returns `true` if the Promise was already cancelled at the time of calling `onCancel`." desc: "Returns `true` if the Promise was already cancelled at the time of calling `onCancel`."
returns: Promise returns: Promise
- name: defer - name: defer
since: 2.0.0 since: 3.0.0
desc: | desc: |
The same as [[Promise.new]], except execution begins after the next `Heartbeat` event. The same as [[Promise.new]], except execution begins after the next `Heartbeat` event.
@ -287,7 +287,7 @@ docs:
static: true static: true
- name: each - name: each
since: 2.0.0 since: 3.0.0
desc: | desc: |
Iterates serially over the given an array of values, calling the predicate callback on each value before continuing. Iterates serially over the given an array of values, calling the predicate callback on each value before continuing.
@ -351,7 +351,7 @@ docs:
static: true static: true
- name: retry - name: retry
since: 2.0.0 since: 3.0.0
desc: | desc: |
Repeatedly calls a Promise-returning function up to `times` number of times, until the returned Promise resolves. Repeatedly calls a Promise-returning function up to `times` number of times, until the returned Promise resolves.
@ -372,7 +372,7 @@ docs:
static: true static: true
- name: fromEvent - name: fromEvent
since: 2.0.0 since: 3.0.0
desc: | desc: |
Converts an event into a Promise which resolves the next time the event fires. Converts an event into a Promise which resolves the next time the event fires.

View file

@ -1,6 +1,6 @@
[package] [package]
name = "roblox-lua-promise" name = "roblox-lua-promise"
version = "2.4.1" version = "3.0.0-rc.1"
author = "evaera" author = "evaera"
content_root = "lib" content_root = "lib"