const LazyMan = function(name){
const array = []
const fn = () => { console.log("Hi! This is "+name+ '!'); next() }
const next = ()=>{
const fn = array.shift()
fn && fn()
}
array.push(fn)
setTimeout(()=>{next()},0)
const api = {
sleep: (number) => {
array.push(()=> {
setTimeout(()=>{console.log('Wake up after '+ number); next() }, number*1000)
})
return api
},
eat: (content) => {
array.push(() => {
console.log('eat ' + content); next()
})
return api
},
sleepFirst: (number) => {
array.unshift(() => {
setTimeout(()=>{console.log('Wake up after '+5); next() }, number*1000)
})
return api
}
}
return api
}