call-moe-dee
v0.0.3
Published
Yo! Ain't me who's gonna leave those calls in the WWW! Call-Moe-Dee (inspired by Kool Moe Dee, Wild Wild West song) is a helper function that makes timed recursive calls, if a given condition does not pass, repeatedly, over a period of time, until a condi
Downloads
12
Maintainers
Readme
Call Moe Dee
Yo! Ain't me who's gonna leave those calls in the WWW! Call-Moe-Dee (inspired by Kool Moe Dee, Wild Wild West song) is a helper function that makes timed recursive calls, if a given condition does not pass, repeatedly, over a period of time, until a condition is met! When the condition test passes, a callback function is called, terminating the timed recursive calls! Also, for each recursive or step in the call stack, there is a stepCallback callback function, if required. So, hell yeah! No mo' breakin' da neck guessing when you is able to make those goddam calls doug!
How to use
npm install call-moe-dee
Import it into your project like you do with your regular libraries
import callMoeDee from 'call-mode-dee'
or, that funky ol' school way brotha and sista
var callMoeDee = require('call-moe-dee')
Pass the parameters to callMoeDee
, that will resolve to the callback once your condition pass!
const params = {
name: 'My callMoeDee test',
time: {
maxMs: 10000, // if omitted, defaults to 40000ms
retryAfterMs: 200, // if omitted, defaults to 1000ms
exceedMaxTimeCallback: () => {
console.log('The caller exceedMaxTimeout!')
}
},
stepCallback: () => {
// this parameter is optional (triggered in each step)
},
condition: {
test: () => (global && global.stop),
callback: () => {
console.log('Hello world!')
}
},
debug: true
}
callMoeDee(params)
Example
import callMoeDee from 'call-mode-dee'
// We'll modify this at a later stage
let global = {
stop: false
}
// Initialize it
callMoeDee({
name: 'My callMoeDee test', // for your convenience, to help debug, etc
time: {
exceedMaxTimeCallback: () => {
console.log('The caller exceedMaxTimeout!')
}
},
stepCallback: () => {
console.log('Step call!')
},
condition: {
test: () => (global && global.stop),
callback: () => {
console.log('Hello world!')
}
},
debug: true
})
// After some time we modify the global.stop property
setTimeout(() => {
global.stop = true
console.log('global.stop: ', global.stop)
}, 5000)