代码拉取完成,页面将自动刷新
type TaskEntity<T extends any> = () => Promise<T>
class SuperTask<T extends any> {
private runningCount = 0
private taskList: Array<TaskEntity<T>> = []
constructor(private runCount = 0) {
}
addTask(task: TaskEntity<T>) {
this.taskList.push(task)
this.run()
}
private run() {
if (this.runningCount < this.runCount) {
if (this.taskList.length > 0) {
const task = this.taskList.shift()!
this.runningCount++
task().then(res => console.log(res)).finally(() => {
this.runningCount--
this.run()
})
}
}
}
}
const timeOut = (time: number, content: string): Promise<string> => {
return new Promise(resolve => {
setTimeout(() => {
resolve(content)
}, time)
})
}
const superTask = new SuperTask(3)
superTask.addTask(() => timeOut(3000, '3000'))
superTask.addTask(() => timeOut(1000, '1000'))
superTask.addTask(() => timeOut(2000, '2000'))
superTask.addTask(() => timeOut(4000, '4000'))
superTask.addTask(() => timeOut(1000, '1000'))
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。