Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: petkaantonov/bluebird
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: ddba7842e6a2a91854cd8859447103d364d4032d
Choose a base ref
...
head repository: petkaantonov/bluebird
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 750bd7f87fefaa0f918a6f0a25caec32ffdaddd8
Choose a head ref

Commits on Dec 3, 2015

  1. Add a first draft of an Async Dialog Tutorial

    This is an attempt to show Bluebird and Promises when used as values
    from a dialog box. I use only Bluebird as a dependency and the DOM code
    is vanilla JS not jQuery.
    
    I first compare the `window.confirm` synchronous code with a
    asynchronous dialog written in the DOM. Then I refactor the example to a
    few OOP abstractions which allow be to demonstrate different types of
    dialogs like a prompt.
    
    I follow this with an explanation on how to best handle the cancellation
    of the dialog box using custom Errors.
    
    And finally I offer and example on how to provide progress updates by
    using a progress bar dialog.
    sukima committed Dec 3, 2015
    Copy the full SHA
    873b291 View commit details

Commits on Dec 10, 2015

  1. WIP

    sukima committed Dec 10, 2015
    Copy the full SHA
    bd52696 View commit details

Commits on Dec 14, 2015

  1. WIP2

    sukima committed Dec 14, 2015
    Copy the full SHA
    ced339b View commit details

Commits on Dec 19, 2015

  1. WIP

    sukima committed Dec 19, 2015
    Copy the full SHA
    a6339ab View commit details

Commits on Dec 31, 2015

  1. WIP

    sukima committed Dec 31, 2015
    Copy the full SHA
    54ade7a View commit details

Commits on Feb 24, 2016

  1. Copy the full SHA
    08b6406 View commit details

Commits on Mar 1, 2016

  1. Copy the full SHA
    5ef4636 View commit details

Commits on Mar 7, 2016

  1. jshint

    petkaantonov committed Mar 7, 2016
    Copy the full SHA
    712e526 View commit details

Commits on Mar 15, 2016

  1. Merge pull request #1029 from petkaantonov/run-coroutine-yields-in-fi…

    …nally-blocks
    
    Continue coroutine execution of finally blocks when cancelled
    petkaantonov committed Mar 15, 2016
    Copy the full SHA
    02e2647 View commit details
  2. Merge pull request #1017 from Shashwat986/master

    Version Locking Sanitize. Using .fragment instead of (deprecated) .clean
    petkaantonov committed Mar 15, 2016
    Copy the full SHA
    7640953 View commit details

Commits on Mar 16, 2016

  1. Update anti-patterns.md

    benjamingr committed Mar 16, 2016
    Copy the full SHA
    a4f691d View commit details

Commits on Mar 17, 2016

  1. Copy the full SHA
    d4c9b82 View commit details
  2. Merge pull request #1046 from MattiasBuelens/docs-fix-promiseinspecti…

    …on-pending
    
    Fix typo in PromiseInspection API documentation.
    benjamingr committed Mar 17, 2016
    Copy the full SHA
    0c5d03a View commit details

Commits on Mar 20, 2016

  1. Fix typo

    Alex Plescan committed Mar 20, 2016
    Copy the full SHA
    58dd5f1 View commit details
  2. Merge pull request #1048 from alexpls/patch-1

    Fixes typo in documentation
    petkaantonov committed Mar 20, 2016
    Copy the full SHA
    5bffd55 View commit details

Commits on Mar 21, 2016

  1. Update promise.bind.md

    Fixing formatting of link
    sethcardoza committed Mar 21, 2016
    Copy the full SHA
    ebc0bb7 View commit details
  2. Merge pull request #1050 from sethcardoza/patch-1

    Update promise.bind.md
    benjamingr committed Mar 21, 2016
    Copy the full SHA
    1192ff3 View commit details

Commits on Mar 29, 2016

  1. Fix typo in support.md

    kbrgl committed Mar 29, 2016

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature.
    Copy the full SHA
    93d38c1 View commit details
  2. Comparator used by getOptionalRequireCode() should be consistent.

    iamstolis@github.com committed Mar 29, 2016
    Copy the full SHA
    8e2e62a View commit details
  3. Update promise.join.md

    fixed typo
    JimiHFord committed Mar 29, 2016
    Copy the full SHA
    33b570f View commit details

Commits on Apr 7, 2016

  1. Fix code formatting

    The code block was not syntax highlighted.
    mperham committed Apr 7, 2016
    Copy the full SHA
    b7731a8 View commit details

Commits on Apr 8, 2016

  1. Merge pull request #1066 from mperham/patch-1

    Fix code formatting
    petkaantonov committed Apr 8, 2016
    Copy the full SHA
    9c10389 View commit details

Commits on Apr 11, 2016

  1. Update catch.md

    Added the fact that one can return a value or a promise from a catch() to recover from a failure.
    vladimirkosmala committed Apr 11, 2016
    Copy the full SHA
    ca65330 View commit details
  2. Merge pull request #1067 from vladimirkosmala/patch-1

    Update catch.md
    benjamingr committed Apr 11, 2016
    Copy the full SHA
    53aa90a View commit details
  3. Update catch.md

    benjamingr committed Apr 11, 2016
    Copy the full SHA
    a125917 View commit details

Commits on Apr 12, 2016

  1. Merge pull request #1060 from JimiHFord/patch-1

    Update promise.join.md
    petkaantonov committed Apr 12, 2016
    Copy the full SHA
    fc7f67e View commit details
  2. Merge pull request #1058 from iamstolis/inconsistent-comparator

    Comparator used by getOptionalRequireCode() should be consistent.
    petkaantonov committed Apr 12, 2016
    Copy the full SHA
    92cd54f View commit details
  3. Merge pull request #1056 from kbrgl/patch-1

    Fix typo in support.md
    petkaantonov committed Apr 12, 2016
    Copy the full SHA
    8904508 View commit details
  4. fixes #1063

    petkaantonov committed Apr 12, 2016
    Copy the full SHA
    7d00cde View commit details
  5. Fixes #1023

    petkaantonov committed Apr 12, 2016
    Copy the full SHA
    f2a58f8 View commit details
  6. Fixes #1022

    petkaantonov committed Apr 12, 2016
    Copy the full SHA
    b8e580c View commit details
  7. Release v3.3.5

    petkaantonov committed Apr 12, 2016
    Copy the full SHA
    ee247f1 View commit details

Commits on Apr 15, 2016

  1. Update catch.md

    Address feedback from IRC about catch docs
    benjamingr committed Apr 15, 2016
    Copy the full SHA
    3039da8 View commit details
  2. throw people to the pit of success

    Emphasize filtered catch is a much much better alternative most of the time
    benjamingr committed Apr 15, 2016
    Copy the full SHA
    086eba8 View commit details
  3. Copy the full SHA
    530891a View commit details
  4. promise.resolve.md - static->promise example

    Based this on the Promise.method. Not sure if that was a special case.
    
    Also, not sure of my jQuery example description. It probably needs a clearer description in any case.
    Is it just casting a jQuery then-able not-quite-promise to a Bluebird promise?
    Special for jQuery or is this for any then-able object, say from another Promise library?
    jghaines committed Apr 15, 2016
    Copy the full SHA
    4a1e5aa View commit details

Commits on Apr 16, 2016

  1. Copy the full SHA
    ae30c58 View commit details
  2. Copy the full SHA
    3bbb2e5 View commit details
  3. Merge pull request #1069 from jghaines/patch-2

    Clarified the 'handler' function
    benjamingr committed Apr 16, 2016
    Copy the full SHA
    b5f6395 View commit details

Commits on Apr 27, 2016

  1. Replaced Promise.each with Promise.mapSeries

    The serial version of map() isn’t each(), it’s mapSeries() – i.e., if you want to replace a piece of code that doesn’t fail when certain promises in an array fail but you want to maintain the order of promise execution, you should use mapSeries().
    
    e.g.,
    
    ```
    	Promise.map(inspections, ((inspection) -> return inspection().reflect()), {concurrency: 1})
    	.then (inspection) ->
    		console.log "\nResults:\n"
    		inspection
    	.each (inspection) ->
    		if inspection.isFulfilled()
    			console.log "  ✅  #{inspection.value()}"
    		else
    			console.log "  ❌  #{inspection.reason().message}"
    ```
    
    In the above code, replace .map() with .mapSeries() and you will get the desired effect. Replace it with .each(), as previously suggested and you won’t.
    
    Also removed the broken sentence "This makes sense because the order of the even with the `{concurrency: 1}`." as it doesn’t make grammatical sense and I’m not sure it adds anything to understanding the problem and find the alternative sooner.
    aral committed Apr 27, 2016
    Copy the full SHA
    fb9ff28 View commit details
  2. Merge pull request #1081 from aral/patch-1

    Replaced Promise.each with Promise.mapSeries
    petkaantonov committed Apr 27, 2016
    Copy the full SHA
    067fa93 View commit details

Commits on May 4, 2016

  1. Update async-dialogs.md

    function name(promptPromise) in doc was wrong
    Ilkin Baskan committed May 4, 2016
    Copy the full SHA
    d1c7abb View commit details
  2. Merge pull request #1 from baskan/patch-1

    Update async-dialogs.md
    sukima committed May 4, 2016
    Copy the full SHA
    838833b View commit details

Commits on May 6, 2016

  1. Copy the full SHA
    d4cc1c0 View commit details
  2. Copy the full SHA
    be07183 View commit details

Commits on May 8, 2016

  1. Add a forgotten period

    1egoman committed May 8, 2016
    Copy the full SHA
    7bed082 View commit details
  2. Merge pull request #1093 from 1egoman/patch-1

    Fix forgotten punctuation
    benjamingr committed May 8, 2016
    Copy the full SHA
    d589d17 View commit details
  3. Merge pull request #1092 from strawbrary/patch-1

    2 fixes for warning explanation docs
    benjamingr committed May 8, 2016
    Copy the full SHA
    c0d4472 View commit details

Commits on May 16, 2016

  1. remove unused variables

    noscripter committed May 16, 2016
    Copy the full SHA
    6076101 View commit details

Commits on May 17, 2016

  1. Copy the full SHA
    7692c81 View commit details
Showing with 8,210 additions and 881 deletions.
  1. +3 −0 .gitignore
  2. +6 −1 .jshintrc
  3. +10 −1 .travis.yml
  4. +1 −1 LICENSE
  5. +8 −2 README.md
  6. +2 −0 bench
  7. +63 −60 benchmark/README.md
  8. +1 −1 benchmark/analysis/promises-bluebird.js
  9. +2 −2 benchmark/doxbee-sequential-errors/{promises-calvinmetcalf-liar.js → promises-calvinmetcalf-lie.js}
  10. +1 −2 benchmark/doxbee-sequential-errors/promises-lvivski-davy.js
  11. +91 −36 benchmark/doxbee-sequential-errors/streamline-callbacks.js
  12. +43 −41 benchmark/doxbee-sequential-errors/streamline-generators.js
  13. +1 −1 benchmark/doxbee-sequential-errors/streamline._js
  14. +51 −0 benchmark/doxbee-sequential/promises-native-async-await.js
  15. +85 −33 benchmark/doxbee-sequential/streamline-callbacks.js
  16. +40 −39 benchmark/doxbee-sequential/streamline-generators.js
  17. +1 −1 benchmark/doxbee-sequential/streamline._js
  18. +1 −1 benchmark/lib/dummy.js
  19. +32 −0 benchmark/madeup-parallel/generators-tj-co.js
  20. +29 −0 benchmark/madeup-parallel/promises-native-async-await.js
  21. +72 −13 benchmark/madeup-parallel/streamline-callbacks.js
  22. +31 −23 benchmark/madeup-parallel/streamline-generators.js
  23. +1,276 −0 benchmark/package-lock.json
  24. +16 −13 benchmark/package.json
  25. +0 −4 benchmark/performance.js
  26. +1 −1 bower.json
  27. +1 −1 docs/Gemfile
  28. +1 −1 docs/_config.yml
  29. +18 −3 docs/_layouts/default.html
  30. +5 −0 docs/css/main.css
  31. +1 −1 docs/docs/anti-patterns.md
  32. +3 −0 docs/docs/api-reference.md
  33. +4 −2 docs/docs/api/all.md
  34. +2 −0 docs/docs/api/cancellation.md
  35. +66 −1 docs/docs/api/catch.md
  36. +2 −2 docs/docs/api/deferred-migration.md
  37. +5 −5 docs/docs/api/disposer.md
  38. +3 −3 docs/docs/api/error.md
  39. +1 −1 docs/docs/api/isfulfilled.md
  40. +1 −1 docs/docs/api/isrejected.md
  41. +2 −2 docs/docs/api/operationalerror.md
  42. +1 −1 docs/docs/api/progression-migration.md
  43. +1 −1 docs/docs/api/promise.all.md
  44. +2 −2 docs/docs/api/promise.bind.md
  45. +32 −4 docs/docs/api/promise.config.md
  46. +18 −5 docs/docs/api/promise.coroutine.addyieldhandler.md
  47. +8 −8 docs/docs/api/promise.coroutine.md
  48. +2 −2 docs/docs/api/promise.delay.md
  49. +59 −6 docs/docs/api/promise.each.md
  50. +64 −0 docs/docs/api/promise.getnewlibrarycopy.md
  51. +3 −3 docs/docs/api/promise.join.md
  52. +1 −1 docs/docs/api/promise.longstacktraces.md
  53. +9 −2 docs/docs/api/promise.map.md
  54. +52 −18 docs/docs/api/promise.mapseries.md
  55. +2 −2 docs/docs/api/promise.onpossiblyunhandledrejection.md
  56. +2 −2 docs/docs/api/promise.promisifyall.md
  57. +2 −2 docs/docs/api/promise.props.md
  58. +21 −3 docs/docs/api/promise.resolve.md
  59. +1 −1 docs/docs/api/promise.setscheduler.md
  60. +2 −2 docs/docs/api/promise.some.md
  61. +1 −1 docs/docs/api/promiseinspection.md
  62. +2 −2 docs/docs/api/reduce.md
  63. +2 −2 docs/docs/api/return.md
  64. +17 −2 docs/docs/api/spread.md
  65. +4 −2 docs/docs/api/tap.md
  66. +135 −0 docs/docs/api/tapcatch.md
  67. +2 −2 docs/docs/api/value.md
  68. +616 −0 docs/docs/async-dialogs.md
  69. +61 −57 docs/docs/benchmarks.md
  70. +184 −0 docs/docs/changelog.md
  71. +8 −8 docs/docs/coming-from-other-languages.md
  72. +2 −2 docs/docs/coming-from-other-libraries.md
  73. +1 −1 docs/docs/contribute.md
  74. +6 −9 docs/docs/deprecated-apis.md
  75. +12 −0 docs/docs/download-api-reference.md
  76. +21 −20 docs/docs/error-explanations.md
  77. +24 −1 docs/docs/features.md
  78. +12 −0 docs/docs/getting-started.md
  79. +22 −8 docs/docs/install.md
  80. +1 −1 docs/docs/new-in-bluebird-3.md
  81. +2 −2 docs/docs/support.md
  82. +11 −10 docs/docs/warning-explanations.md
  83. +2 −0 docs/docs/what-about-generators.md
  84. +5 −5 docs/docs/why-bluebird.md
  85. +17 −53 docs/docs/working-with-callbacks.md
  86. +1 −1 docs/helpers.rb
  87. +1 −0 docs/img/README.txt
  88. BIN docs/img/libbblog_v3.png
  89. BIN docs/img/supportlogo.png
  90. +3,209 −0 package-lock.json
  91. +7 −5 package.json
  92. +25 −58 src/async.js
  93. +10 −6 src/cancel.js
  94. +8 −3 src/constants.js
  95. +187 −32 src/debuggability.js
  96. +5 −4 src/each.js
  97. +38 −3 src/finally.js
  98. +37 −19 src/generators.js
  99. +28 −12 src/join.js
  100. +33 −9 src/map.js
  101. +93 −39 src/promise.js
  102. +3 −1 src/promise_array.js
  103. +1 −1 src/props.js
  104. +0 −17 src/queue.js
  105. +29 −6 src/reduce.js
  106. +21 −12 src/schedule.js
  107. +4 −0 src/settle.js
  108. +10 −3 src/synchronous_inspection.js
  109. +5 −1 src/thenables.js
  110. +1 −0 src/timers.js
  111. +3 −2 src/using.js
  112. +73 −10 src/util.js
  113. +3 −2 test/browser/mocha.js
  114. +2 −2 test/browser/promise_debug.js
  115. +20 −0 test/browser/worker.js
  116. +90 −0 test/mocha/async.js
  117. +145 −0 test/mocha/async_hooks.js
  118. +4 −0 test/mocha/bluebird-multiple-instances.js
  119. +52 −2 test/mocha/cancel.js
  120. +14 −0 test/mocha/catch_filter.js
  121. 0 test/mocha/{finaly.js → finally.js}
  122. +69 −14 test/mocha/generator.js
  123. +30 −0 test/mocha/getNewLibraryCopy.js
  124. +11 −8 test/mocha/helpers/util.js
  125. +7 −0 test/mocha/join.js
  126. +43 −1 test/mocha/map.js
  127. +32 −0 test/mocha/promisify.js
  128. +7 −0 test/mocha/props.js
  129. +1 −0 test/mocha/regress.js
  130. +130 −0 test/mocha/tapCatch.js
  131. +171 −8 test/mocha/unhandled_rejections.js
  132. +15 −5 test/mocha/using.js
  133. +4 −4 tools/README.md
  134. +50 −12 tools/ast_passes.js
  135. +10 −3 tools/browser_test_generator.js
  136. +11 −14 tools/build.js
  137. +1 −1 tools/job-runner/job-runner.js
  138. +1 −0 tools/jshintrc_generator.js
  139. +4 −4 tools/mocha_runner.js
  140. +17 −3 tools/test.js
  141. +0 −2 tools/utils.js
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -3,6 +3,9 @@ gh-pages
node_modules
gh-pages
test/browser/bundle.js
test/browser/worker_bundle.js
js/*
zalgo.js
coverage/*
.vscode
.idea
7 changes: 6 additions & 1 deletion .jshintrc
Original file line number Diff line number Diff line change
@@ -52,6 +52,7 @@
"args": true,
"chrome": true,
"INLINE_SLICE": false,
"INLINE_SLICE_LEFT_PADDED": false,
"BIT_FIELD_CHECK": false,
"BIT_FIELD_READ": false,
"USE": false,
@@ -87,20 +88,23 @@
"CALLBACK_PROMISE_OFFSET": false,
"CALLBACK_RECEIVER_OFFSET": false,
"CALLBACK_SIZE": false,
"ASYNC_GUARANTEE_SHIFT": false,
"NO_STATE": false,
"NO_ASYNC_GUARANTEE": false,
"RETURNED_NON_UNDEFINED": false,
"IS_ASYNC_GUARANTEED": false,
"IS_FOLLOWING": false,
"IS_FULFILLED": false,
"IS_REJECTED": false,
"IS_CANCELLABLE": false,
"WILL_BE_CANCELLED": false,
"IS_FINAL": false,
"IS_BOUND": false,
"IS_REJECTION_UNHANDLED": false,
"IS_REJECTION_IGNORED": false,
"IS_UNHANDLED_REJECTION_NOTIFIED": false,
"IS_DISPOSABLE": false,
"IS_CANCELLED": false,
"IS_CANCELLED_OR_WILL_BE_CANCELLED": false,
"LENGTH_MASK": false,
"LENGTH_CLEAR_MASK": false,
"MAX_LENGTH": false,
@@ -117,6 +121,7 @@
"RESOLVE_OBJECT": false,
"RESOLVE_FOREVER_PENDING": false,
"RESOLVE_CALL_METHOD": false,
"RESOLVE_MAP": false,
"QUEUE_MAX_CAPACITY": false,
"QUEUE_MIN_CAPACITY": false,
"FROM_PREVIOUS_EVENT": false,
11 changes: 10 additions & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
@@ -6,12 +6,21 @@ matrix:
- node_js: "0.12"
- node_js: "4"
- node_js: "5"
- node_js: "6"
- node_js: "7"
- node_js: "8"
- node_js: "10"
fast_finish: true
git:
depth: 5
env:
- "NODE_FLAGS='' SCRIPT_FLAGS=''"
- "NODE_FLAGS='--expose-gc' SCRIPT_FLAGS=''"
before_script:
- git submodule update --init --recursive
script: "node $NODE_FLAGS tools/test.js $SCRIPT_FLAGS"
branches:
only:
- master
cache:
directories:
- "$HOME/.npm"
2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
The MIT License (MIT)

Copyright (c) 2013-2015 Petka Antonov
Copyright (c) 2013-2018 Petka Antonov

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
10 changes: 8 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -2,8 +2,10 @@
<img src="http://promisesaplus.com/assets/logo-small.png" alt="Promises/A+ logo"
title="Promises/A+ 1.1 compliant" align="right" />
</a>


[![Build Status](https://travis-ci.org/petkaantonov/bluebird.svg?branch=master)](https://travis-ci.org/petkaantonov/bluebird)
[![coverage-98%](http://img.shields.io/badge/coverage-98%-brightgreen.svg?style=flat)](http://petkaantonov.github.io/bluebird/coverage/debug/index.html)
[![coverage-98%](https://img.shields.io/badge/coverage-98%25-brightgreen.svg?style=flat)](http://petkaantonov.github.io/bluebird/coverage/debug/index.html)

**Got a question?** Join us on [stackoverflow](http://stackoverflow.com/questions/tagged/bluebird), the [mailing list](https://groups.google.com/forum/#!forum/bluebird-js) or chat on [IRC](https://webchat.freenode.net/?channels=#promises)

@@ -15,6 +17,10 @@ See the [**bluebird website**](http://bluebirdjs.com/docs/getting-started.html)

For bluebird 2.x documentation and files, see the [2.x tree](https://github.com/petkaantonov/bluebird/tree/2.x).

### Note

Promises in Node.js 10 are significantly faster than before. Bluebird still includes a lot of features like cancellation, iteration methods and warnings that native promises don't. If you are using Bluebird for performance rather than for those - please consider giving native promises a shot and running the benchmarks yourself.

# Questions and issues

The [github issue tracker](https://github.com/petkaantonov/bluebird/issues) is **_only_** for bug reports and feature requests. Anything else, such as questions for help in using the library, should be posted in [StackOverflow](http://stackoverflow.com/questions/tagged/bluebird) under tags `promise` and `bluebird`.
@@ -29,7 +35,7 @@ Thanks to BrowserStack for providing us with a free account which lets us suppor

The MIT License (MIT)

Copyright (c) 2013-2016 Petka Antonov
Copyright (c) 2013-2019 Petka Antonov

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
2 changes: 2 additions & 0 deletions bench
Original file line number Diff line number Diff line change
@@ -5,6 +5,8 @@ nodepath=${2:-node}
shift 2;
cwd=${PWD}

export NODE_ENV=production

trap 'cd "$cwd"' EXIT

if [ "$benchmark" = "doxbee" ]; then
123 changes: 63 additions & 60 deletions benchmark/README.md
Original file line number Diff line number Diff line change
@@ -1,72 +1,75 @@
**2015-01-05** Latest results, using latest versions of modules:
**2018-07-16** Latest results, using latest versions of modules:

├── async@0.9.0
├── davy@0.3.3
├── deferred@0.7.1
├── kew@0.5.0-alpha.1
├── lie@2.8.0
├── async@2.6.1
├── davy@1.3.0
├── deferred@0.7.9
├── kew@0.7.0
├── lie@3.3.0
├── optimist@0.6.1
├── promise@6.0.1
├── q@1.1.2
├── rsvp@3.0.16
├── vow@0.4.7
└── when@3.6.4
├── rx@2.3.25
├── co@4.2.0
├── baconjs@0.7.43
├── highland@2.3.0
├── promise@8.0.1
├── q@1.5.1
├── rsvp@4.8.3
├── vow@0.4.17
├── when@3.7.8

bench doxbee-sequential
bench doxbee-sequential `ls ./doxbee-sequential/*.js | sed -e 's|\.js||' | xargs node ./performance.js --p 1 --t 1 --n 10000`

results for 10000 parallel executions, 1 ms per I/O op

file time(ms) memory(MB)
callbacks-baseline.js 232 35.86
promises-bluebird-generator.js 235 38.04
promises-bluebird.js 335 52.08
promises-cujojs-when.js 405 75.77
promises-tildeio-rsvp.js 468 87.56
promises-dfilatov-vow.js 578 125.98
callbacks-caolan-async-waterfall.js 634 88.64
promises-lvivski-davy.js 653 109.64
promises-calvinmetcalf-lie.js 732 165.41
promises-obvious-kew.js 1346 261.69
promises-ecmascript6-native.js 1348 189.29
generators-tj-co.js 1419 164.03
promises-then-promise.js 1571 294.45
promises-medikoo-deferred.js 2091 262.18
observables-Reactive-Extensions-RxJS.js 3201 356.76
observables-caolan-highland.js 7429 616.78
promises-kriskowal-q.js 9952 694.23
observables-baconjs-bacon.js.js 25805 885.55
file time(ms) memory(MB)
callbacks-baseline 162 28.12
callbacks-suguru03-neo-async-waterfall 195 42.39
promises-bluebird-generator 199 40.23
callbacks-caolan-async-waterfall 225 46.36
promises-native-async-await 245 57.39
promises-bluebird 257 47.03
promises-lvivski-davy 313 87.59
promises-cujojs-when 318 64.34
promises-then-promise 323 64.49
generators-tj-co 334 58.03
promises-ecmascript6-native 335 65.40
promises-tildeio-rsvp 420 86.79
promises-calvinmetcalf-lie 514 138.58
promises-dfilatov-vow 629 135.28
promises-obvious-kew 693 190.43
streamline-generators 762 90.18
promises-medikoo-deferred 781 149.33
observables-pozadi-kefir 824 180.54
streamline-callbacks 1088 114.73
observables-Reactive-Extensions-RxJS 1208 243.74
observables-caolan-highland 3094 424.63
promises-kriskowal-q 3505 367.13
observables-baconjs-bacon.js 5224 660.07

Platform info:
Windows_NT 6.1.7601 x64
Node.JS 1.1.0
V8 4.1.0.14
Intel(R) Core(TM) i5-2500K CPU @ 3.30GHz × 4
Darwin 17.7.0 x64
Node.JS 10.6.0
V8 6.7.288.46-node.13
Intel(R) Core(TM) i5-7360U CPU @ 2.30GHz × 4

bench parallel (`--p 25`)

results for 10000 parallel executions, 1 ms per I/O op
results for 10000 parallel executions, 1 ms per I/O op `ls ./madeup-parallel/*.js | sed -e 's|\.js||' | xargs node ./performance.js --p 25 --t 1 --n 10000`

results for 10000 parallel executions, 1 ms per I/O op

file time(ms) memory(MB)
callbacks-baseline.js 211 25.57
promises-bluebird.js 389 53.49
promises-bluebird-generator.js 491 55.52
promises-tildeio-rsvp.js 785 108.14
promises-dfilatov-vow.js 798 102.08
promises-cujojs-when.js 851 60.46
promises-calvinmetcalf-lie.js 1065 187.69
promises-lvivski-davy.js 1298 135.43
callbacks-caolan-async-parallel.js 1780 101.11
promises-then-promise.js 2438 338.91
promises-ecmascript6-native.js 3532 301.96
promises-medikoo-deferred.js 4207 357.60
promises-obvious-kew.js 8311 559.24
file time(ms) memory(MB)
callbacks-baseline 309 74.47
callbacks-suguru03-neo-async-parallel 374 84.18
promises-bluebird-generator 455 106.49
promises-bluebird 472 98.00
callbacks-caolan-async-parallel 510 119.34
promises-lvivski-davy 671 163.84
promises-cujojs-when 701 168.99
promises-native-async-await 1087 242.02
promises-tildeio-rsvp 1237 344.17
promises-calvinmetcalf-lie 1401 370.65
promises-ecmascript6-native 1509 242.91
promises-then-promise 1533 303.89
promises-medikoo-deferred 1923 334.75
promises-dfilatov-vow 2534 534.80
promises-obvious-kew 2623 306.68

Platform info:
Windows_NT 6.1.7601 ia32
Node.JS 0.11.14
V8 3.26.33
Intel(R) Core(TM) i5-2500K CPU @ 3.30GHz × 4
Darwin 17.7.0 x64
Node.JS 10.6.0
V8 6.7.288.46-node.13
Intel(R) Core(TM) i5-7360U CPU @ 2.30GHz × 4
2 changes: 1 addition & 1 deletion benchmark/analysis/promises-bluebird.js
Original file line number Diff line number Diff line change
@@ -10,7 +10,7 @@ module.exports = function upload(stream, idOrPath, tag, done) {
var fileP = self.byUuidOrPath(idOrPath).get();
var version, fileId, file;

bluebird.all([blobIdP, fileP]).spread(function(blobId, fileV) {
bluebird.join(blobIdP, fileP, function(blobId, fileV) {
file = fileV;
var previousId = file ? file.version : null;
version = {
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
global.useLiar = true;
global.useLie = true;

var promise = require("liar");
var promise = require("lie");

require('../lib/fakesP');

3 changes: 1 addition & 2 deletions benchmark/doxbee-sequential-errors/promises-lvivski-davy.js
Original file line number Diff line number Diff line change
@@ -9,8 +9,7 @@ module.exports = function upload(stream, idOrPath, tag, done) {
var fileP = self.byUuidOrPath(idOrPath).get();
var version, fileId, file;

davy.all([blobIdP, fileP]).spread(function(all) {
var blobId = all[0], fileV = all[1];
davy.all([blobIdP, fileP]).spread(function(blobId, fileV) {
file = fileV;
var previousId = file ? file.version : null;
version = {
Loading