应该没错吧。。。。。 //promise版 add(promiseCreator){ let content = this; return new Promise((resolve,reject)=>{ if(content.limit > 0){ content.limit--; resolve(promiseCreator()); }else{ content.arr.push([resolve,promiseCreator]); } }).then(()=>{ if(content.arr.length){ let item = content.arr.shift(); item[0](item[1]()); }else{ content.limit++; } return Promise.resolve(); }) } //await版 async add(promiseCreator) { if(this.limit<=0){ await new Promise((resolve)=>{ this.arr.push(resolve); }) } this.limit--; await promiseCreator(); this.limit++; if(this.arr.length) this.arr.shift()(); }
2 1

相关推荐

头像
04-26 15:00
已编辑
算法工程师
点赞 评论 收藏
转发
牛客网
牛客企业服务