0
点赞
收藏
分享

微信扫一扫

异步小工具 asyncTool

九点韶留学 2022-08-29 阅读 136
编程语言

class asyncTool {
constructor () {
this.arr = []
this.ctx = {}
}

use (func) {
const into = {
func,
next: () => {}
}
this.arr.push(into)
if (this.arr.length > 1) {
const index = this.arr.length - 2
const nextFunc = () => {
// console.info('func.length', func.length)
this._innerRun(func, this.arr[index + 1].next)
}
this.arr[index].next = nextFunc
}
return this
}

getFuncName (fun) {
var ret = fun.toString()
ret = ret.substr('function '.length)
ret = ret.substr(0, ret.indexOf('('))
return ret
}

_innerRun (func, next) {
console.info(`%cfuncName: ${this.getFuncName(func)}`, 'color:green')
if (func.length === 0) {
func()
}
if (func.length === 1) {
func(next)
}
if (func.length === 2) {
func(this.ctx, next)
}
}

run () {
if (this.arr.length > 0) {
this._innerRun(this.arr[0].func, this.arr[0].next)
// console.info('asyncTool func.length', this.arr[0].func.length)
}
}
}

export default asyncTool

const ac = new this.$asyncTool()
ac.use(this.func1)
ac.use(this.func2)
ac.run()

---------------------------------------------
生活的意义并不是与他人争高下,而在于享受努力实现目标的过程,结果是对自己行动的嘉奖。
↑面的话,越看越不痛快,应该这么说:

生活的意义就是你自己知道你要做什么,明确目标。没有目标,后面都是瞎扯!



举报

相关推荐

0 条评论