Javascript 节点承诺断路器-从被调用函数返回值

Javascript 节点承诺断路器-从被调用函数返回值,javascript,node.js,promise,circuit-breaker,Javascript,Node.js,Promise,Circuit Breaker,我正在尝试使用promise断路器节点模块。 我能够将参数传递给被调用函数,但是,我无法让被调用函数返回值。 此外,我一直得到一个超时,我不明白。我显然遗漏了一些东西,但是我在文档中找不到任何解决方案() 我制作了一个非常简单的示例应用程序来说明我的困难: var CircuitBreaker = require('promise-circuitbreaker'); var TimeoutError = CircuitBreaker.TimeoutError; var OpenCircuitEr

我正在尝试使用promise断路器节点模块。 我能够将参数传递给被调用函数,但是,我无法让被调用函数返回值。 此外,我一直得到一个超时,我不明白。我显然遗漏了一些东西,但是我在文档中找不到任何解决方案()

我制作了一个非常简单的示例应用程序来说明我的困难:

var CircuitBreaker = require('promise-circuitbreaker');
var TimeoutError = CircuitBreaker.TimeoutError;
var OpenCircuitError = CircuitBreaker.OpenCircuitError;


function testFcn(input, err) {
  console.log('Received param: ', input);
  //err('This is an error callback');

  return 'Value to return';
}

var cb = new CircuitBreaker(testFcn);

var circuitBreakerPromise = cb.exec('This param is passed to the function');

circuitBreakerPromise.then(function (response) {
  console.log('Never reach here:', response);
})
  .catch(TimeoutError, function (error) {
    console.log('Handle timeout here: ', error);
  })
  .catch(OpenCircuitError, function (error) {
    console.log('Handle open circuit error here');
  })
  .catch(function (error) {
    console.log('Handle any error here:', error);
  })
  .finally(function () {
    console.log('Finally always called');
    cb.stopEvents();
  });
我从中得到的结果是:

Received param:  This param is passed to the function
Handle timeout here:  { [TimeoutError: Timed out after 3000 ms] name: 'TimeoutError', message: 'Timed out after 3000 ms' }
Finally always called
在我的例子中,我希望返回一个简单的字符串。我不希望出现超时错误

如果我在testFcn()中取消注释行//err('这是一个错误回调'),我将得到以下输出:

Received param:  This param is passed to the function
Handle any error here: This is an error callback
Finally always called
因此,被调用函数中的第二个参数似乎用于错误处理

任何帮助都将不胜感激