function arrany(name) {
let tasks = []
tasks.push(() => {
console.log(name)
})
function wait(duration) {
tasks.push(() => new Promise(resolve => {
setTimeout(resolve, duration)
}))
return this
}
function execute() {
for (let task of tasks) {
task()
}
return this
}
function dosomething(aa) {
tasks.push(() => {
console.log('do ' + aa)
})
return this
}
function waitFirst(dur) {
tasks.unshift(() => new Promise(resolve => {
console.log('first')
setTimeout(resolve, dur)
}))
return this
}
return {
wait,
do: dosomething,
waitFirst,
execute
}
}
function add(a, b) {
console.log(a + b)
}
ret = arrany('test').wait(6000).do('111111').waitFirst(2000)