X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=promise-handling.js;h=4e83dc54268f278c6d5de9d2dd29b96cf873a4d3;hb=b3b242bed0253f6471f1718c3baf0a91f4952f39;hp=bed3ac4f64a8de4a8042d7dd54c7e4d92fd3acef;hpb=7fd91296ddf293e0ef084408618f4cc1f551de92;p=benchmarks-js.git diff --git a/promise-handling.js b/promise-handling.js index bed3ac4..4e83dc5 100644 --- a/promise-handling.js +++ b/promise-handling.js @@ -1,37 +1,61 @@ -const Benchmark = require('benchmark') -const { LIST_FORMATTER } = require('./benchmark-utils') - -const suite = new Benchmark.Suite() +const Benchmark = require('benny') /** * */ function promise () { - return new Promise() + return new Promise(resolve => { + resolve() + }) } /** * */ async function asyncFunction () { - await promise() + return await promise() } -suite - .add('await promise', async function () { - await asyncFunction() - }) - .add('promise', function () { +Benchmark.suite( + 'Promise handling', + Benchmark.add('await promise', async () => { + try { + return await asyncFunction() + } catch (e) { + console.error(e) + } + }), + Benchmark.add('promise with then().catch()', () => { asyncFunction() + .then(r => { + return r + }) + .catch(e => { + console.error(e) + }) + }), + Benchmark.add('voided promise', () => { + // eslint-disable-next-line no-void + void asyncFunction() + }), + Benchmark.add('mishandled promise', () => { + asyncFunction() + }), + Benchmark.cycle(), + Benchmark.complete(), + Benchmark.save({ + file: 'promise-handling', + format: 'json', + details: true + }), + Benchmark.save({ + file: 'promise-handling', + format: 'chart.html', + details: true + }), + Benchmark.save({ + file: 'promise-handling', + format: 'table.html', + details: true }) - .on('cycle', function (event) { - console.log(event.target.toString()) - }) - .on('complete', function () { - console.log( - 'Fastest is ' + LIST_FORMATTER.format(this.filter('fastest').map('name')) - ) - // eslint-disable-next-line n/no-process-exit - process.exit() - }) - .run() +)