JS实现对Promise的并发处理

这是一篇关于如何使用JavaScript实现Promise并发控制的文章,通过分析字节跳动的面试题,阐述了如何设计一个Scheduler类,确保任务的特定执行顺序。文章详细介绍了两种实现方法,一种是通过任务队列和存储resolve、reject,另一种是利用Promise阻塞来控制并发,确保任务按预期顺序完成。
摘要由CSDN通过智能技术生成

一道字节的面试题,要求补全以下代码,实现一个 Scheduler 类,完成对Promise 的并发控制,使得以下代码的输出顺序是:2、3、1、4

class Scheduler {
   
  constructor () {
   
  }
  addTask () {
   
  }
}

const timeout = (time) => new Promise(resolve => {
   
    setTimeout(resolve, time)
})

const scheduler = new Scheduler()

scheduler.addTask(() => timeout(1000)).then(() => console.log(1))
scheduler.addTask(() => timeout(500)).then(() => console.log(2))
scheduler.addTask(() => timeout(300)).then(() => console.log(3))
scheduler.addTask(() => timeout(400)).then(() 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值