如何像可选的异步回调一样实现mocha?

kor*_*Zis 1 javascript mocha.js node.js

我想以与mocha相同的方式实现可选的异步回调.

我的意思是我想拥有可以同步和异步的回调函数.

当用户使用可选的回调参数'done'时,当没有回调参数而不是同步时,它是异步的.

// Sync version
it('does something sync', function() { 
  console.log('this is sync version') 
});

// Async version
it('does something async, function(done) {
  setTimeout(function() {
    done(true);
  }, 1000);
});

如果回调是同步还是异步,那么函数'it'如何区分呢?

知道如何实现这个吗?

msc*_*dex 8

Mocha仅检查测试函数中是否存在回调参数.function.length用于确定回调的参数数量.