From 92fab8da2c63675468955869bd9781cb3a400e1d Mon Sep 17 00:00:00 2001 From: Gabriel Falkenberg Date: Wed, 3 Dec 2014 12:00:42 +0100 Subject: [PATCH] Adding timeout example to code in README --- README.md | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 3a38b7a..810ba2a 100644 --- a/README.md +++ b/README.md @@ -20,6 +20,11 @@ var circuitBreaker = require('circuitbreaker'); var loadDataFromRemoteServer = function (id, callback) { if (id < 0) { return callback(new Error('error loading data ' + id)); + } if (id === 100) { + // simulate slow request + return setTimeout(function () { + callback(null, 'data for id ' + id); + }, 100); } else { return callback(null, 'data for id ' + id); } @@ -27,19 +32,22 @@ var loadDataFromRemoteServer = function (id, callback) { var breaker = circuitBreaker(loadDataFromRemoteServer, {timeout: 10, maxFailures: 3, resetTimeout: 30}); -breaker(23).then(console.log); +breaker(1).then(console.log); breaker(-1).fail(console.log); -breaker(-1).fail(console.log); -breaker(-1).fail(console.log); +breaker(-2).fail(console.log); +breaker(-3).fail(console.log); -breaker(32).fail(function(err) { +breaker(2).fail(function(err) { console.log('failed because breaker is open', err); }); setTimeout(function () { - breaker(32).then(function (data) { - console.log('loaded data because circuit reset after timeout: ', data); + breaker(3).then(function (data) { + console.log('loaded data because circuit reset after timeout:', data); + }); + breaker(100).fail(function (err) { + console.log('failed because function took to long:', err); }); }, 35); ```