Javascript 基准测试引发错误的异步与同步代码

Javascript 基准测试引发错误的异步与同步代码,javascript,node.js,asynchronous,error-handling,benchmark.js,Javascript,Node.js,Asynchronous,Error Handling,Benchmark.js,我有两个功能;一个是异步的(testSync),另一个是同步的(testSync)。我正在尝试将它们与benchmark.js一起使用。哪一个更快,速度有多快。他们都应该抛出一个错误 我不知道我应该如何a)设置异步测试b)确保测试帐户为每个函数抛出一个错误 以下是我得到的: import Benchmark from 'benchmark' var suite = new Benchmark.Suite; // add tests suite.add('query validation tes

我有两个功能;一个是异步的(
testSync
),另一个是同步的(
testSync
)。我正在尝试将它们与benchmark.js一起使用。哪一个更快,速度有多快。他们都应该抛出一个错误

我不知道我应该如何a)设置异步测试b)确保测试帐户为每个函数抛出一个错误

以下是我得到的:

import Benchmark from 'benchmark'
var suite = new Benchmark.Suite;

// add tests
suite.add('query validation test sync', function(deferred) {
  try {
    testSync({'name': 'reggi'});
  } catch (e) {
    deferred.resolve();
  }
})
.add('query validation test async', function(deferred) {
  testAsync({'name': 'reggi'}, {})
    .then(deferred.resolve)
    .catch(deferred.resolve);
})
// add listeners
.on('cycle', function(event) {
  console.log(String(event.target));
})
.on('error', function(event) {
  console.log(String(event.target));
})
.on('complete', function() {
  console.log('Fastest is ' + this.filter('fastest').map('name'));
})
// run async
.run({ 'async': true });

您应该指定
defer:true
作为测试函数的选项:

suite.add('query validation test sync', function() {
  try {
    testSync({'name': 'reggi'});
  } catch (e) {
    // it's sync code, you don't need use defer here
  }
})
.add('query validation test async', {
  defer: true,
  fn: function(deferred) {
    testAsync({'name': 'reggi'}, {})
      .then(deferred.resolve)
      .catch(deferred.resolve);
  }
})
...
benchmark.js网站上的示例(在本节中间)