Skip to content

Instantly share code, notes, and snippets.

@v0lkan
Created January 17, 2019 07:03
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save v0lkan/e181067a94ba87d66b6708c358f2c892 to your computer and use it in GitHub Desktop.
Save v0lkan/e181067a94ba87d66b6708c358f2c892 to your computer and use it in GitHub Desktop.
work-it-do-it-makes-us-stronger.js
const workIt = () => "work it";
const makeIt = () => "make it";
const doIt = () => "do it";
const makesUs = () => "makes us";
function* stepper() {
yield "harder";
yield "better";
yield "faster";
yield "stronger";
}
const handlers = {
harder(value) {
console.log(workIt(), value);
},
better(value) {
console.log(makeIt(), value);
},
faster(value) {
console.log(doIt(), value);
},
stronger(value) {
console.log(makesUs(), value);
}
};
const printCatchPhrase = value => {
handlers[value](value);
switch (value) {
case "harder":
console.log(workIt(), value);
break;
case "better":
console.log(makeIt(), value);
break;
case "faster":
console.log(doIt(), value);
break;
case "stronger":
console.log(makesUs(), value);
break;
default:
break;
}
};
const run = () => {
let it = stepper();
let nextItem = it.next();
while (!nextItem.done) {
const { value } = nextItem;
printCatchPhrase(value);
nextItem = it.next();
}
};
run();
// nextItem;
// while (!nextItem.done) {
// const value = nextItem.value();
// nextItem = iterator.next();
// console.log(value);
// }
// console.log('a')
// while (nextItem.value()) {
// const value = nextItem.value();
// console.log(value);
// nextItem = stepper.next();
// }
// stepper().next().value;
// switch stepper() {
// case 'harder':
// workIt();
// break;
// case 'better':
// makeIt();
// break;
// case 'faster':
// doIt();
// break;
// case 'stronger':
// makesUs();
// break;
// default:
// workIt();
// }
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment