Skip to content

Instantly share code, notes, and snippets.

@dondevi
Created February 8, 2018 09:30
Show Gist options
  • Save dondevi/b5239d50de78d41c4fac738e7c2de645 to your computer and use it in GitHub Desktop.
Save dondevi/b5239d50de78d41c4fac738e7c2de645 to your computer and use it in GitHub Desktop.
function lazyMan (name) {
let man = { name };
let tasks = [];
let excute = () => {
let task = tasks.shift();
task && task();
};
man.talk = () => {
tasks.push(() => {
console.log(`Hi! This is ${name}!`);
excute();
});
}
man.sleep = second => {
tasks.push(() => {
window.setTimeout(() => {
console.log(`Wake up after ${second}`);
excute();
}, second * 1000);
});
return man;
}
man.eat = food => {
tasks.push(() => {
console.log(`Eat ${food}~`);
excute();
});
return man;
}
man.sleepFirst = second => {
tasks.unshift(() => {
window.setTimeout(() => {
console.log(`Wake up after ${second}`);
excute();
}, second * 1000);
});
return man;
};
man.talk();
window.setTimeout(excute);
return man;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment