Skip to content

Releases: ForbesLindesay/throat

6.0.2

03 Jan 13:31
1231ed7
Compare
Choose a tag to compare

Bug Fixes

  • Task queue could fail after an edge case involving many batches of jobs (#62)

    This issue was introduced in 6.0.1

6.0.1

20 Jan 20:57
8fd7a02
Compare
Choose a tag to compare

Performance Improvements

  • Optimise the queue again (#57)

    6.0.0 was significantly slower than 5.0.0. This restores the balance. Each of these benchmarks is run 10x times, in order to make the numbers reasonably stable for comparison.

    5.0.0 benchmark:

    limit=10
    10 promises: 1.118ms
    100 promises: 31.778ms
    1000 promises: 22.806ms
    10000 promises: 59.501ms
    100000 promises: 941.285ms
    1000000 promises: 11.569s
    limit=1000000
    10 promises: 0.177ms
    100 promises: 0.425ms
    1000 promises: 4.904ms
    10000 promises: 84.251ms
    100000 promises: 1.081s
    1000000 promises: 13.656s
    

    6.0.0 benchmark:

    limit=10
    10 promises: 1.122ms
    100 promises: 18.4ms
    1000 promises: 34.742ms
    10000 promises: 86.504ms
    100000 promises: 1.475s
    1000000 promises: 20.298s
    limit=1000000
    10 promises: 0.264ms
    100 promises: 0.424ms
    1000 promises: 5.6ms
    10000 promises: 93.45ms
    100000 promises: 1.466s
    1000000 promises: 20.109s
    

    6.0.1 benchmark:

    limit=10
    10 promises: 1.217ms
    100 promises: 4.433ms
    1000 promises: 49.928ms
    10000 promises: 67.578ms
    100000 promises: 958.481ms
    1000000 promises: 10.542s
    limit=1000000
    10 promises: 0.118ms
    100 promises: 0.424ms
    1000 promises: 4.993ms
    10000 promises: 84.649ms
    100000 promises: 1.163s
    1000000 promises: 13.297s
    

6.0.0

20 Jan 14:39
f8ced5e
Compare
Choose a tag to compare

Breaking Changes

  • Throat no longer supports overriding the Promise implementation (#56)

    If you need to support older browsers, you should use a global polyfill. If you want throat to return a different type of Promise, you should manually wrap the result using CustomPromise.resolve(...)

  • Older browsers are no longer tested, although most will continue to work if you include a polyfill for Promise (#56)

    We are still testing on:

    • Microsoft Edge version 15
    • Google Chrome version 55
    • Firefox version 52
    • Safari version 12
    • iOS Safari version 11
  • Node.js version 8 is no longer tested, although it will probably continue to work (#56)

New Features

  • Environments that support async stack traces will now show the full stack trace when using throat. Previously throat calls effectively cut the stack trace off at that call. (#56)

5.0.0

04 Nov 16:02
Compare
Choose a tag to compare
  • Breaking Change: drop support for node 4 and 5
  • fix: improve typescript types and support using TypeScript's default import style

4.1.0

04 Nov 16:00
Compare
Choose a tag to compare
  • perf: optimise internal queue (#26)