diff options
Diffstat (limited to 'lib/repeat.js')
-rw-r--r-- | lib/repeat.js | 60 |
1 files changed, 30 insertions, 30 deletions
diff --git a/lib/repeat.js b/lib/repeat.js index 2ea0e14..f4d9532 100644 --- a/lib/repeat.js +++ b/lib/repeat.js @@ -1,16 +1,16 @@ /* -Copyright(c) 2017 AT&T Intellectual Property. All rights reserved. +Copyright(c) 2017 AT&T Intellectual Property. All rights reserved. -Licensed under the Apache License, Version 2.0 (the "License"); +Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 -Unless required by applicable law or agreed to in writing, +Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR -CONDITIONS OF ANY KIND, either express or implied. +CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. */ @@ -25,30 +25,30 @@ See the License for the specific language governing permissions and limitations */ exports.repeatWhile = function(action, predicate, maxTries, interval) { - return new Promise(function(resolve, reject) { - - var count = 0; - - function makeAttempt() { - action() - .then (function(res) { - if (!predicate(res)) { - // We're done - resolve(res); - } - else { - if (++count < maxTries) { - // set up next attempt - setTimeout(makeAttempt, interval); - } - else { - // we've run out of retries or it's not retryable, so reject the promise - reject({message: "maximum repetions reached: " + count }); - } - } - }); - } - - makeAttempt(); - }); + return new Promise(function(resolve, reject) { + + var count = 0; + + function makeAttempt() { + action() + .then (function(res) { + if (!predicate(res)) { + // We're done + resolve(res); + } + else { + if (++count < maxTries) { + // set up next attempt + setTimeout(makeAttempt, interval); + } + else { + // we've run out of retries or it's not retryable, so reject the promise + reject({message: "maximum repetitions reached: " + count }); + } + } + }); + } + + makeAttempt(); + }); }; |