promise-circuitbreaker ノード モジュールを使用しようとしています。呼び出された関数にパラメーターを渡すことはできますが、呼び出された関数に値を返すことはできません。さらに、理解できないタイムアウトが発生し続けます。明らかに何かが欠けていますが、ドキュメントで解決策が見つかりません ( http://pablolb.github.io/promise-circuitbreaker/ )
私の問題を示すために、非常に単純なサンプルアプリを作成しました。
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('This is an error callback') 行のコメントを外すと、次の出力が得られます。
Received param: This param is passed to the function
Handle any error here: This is an error callback
Finally always called
したがって、呼び出された関数の 2 番目のパラメーターはエラー処理用のようです。
どんな助けでも大歓迎です。