sindresorhus/p-queue

internal `pending` count out of sync

ZhangHanwen96 opened this issue · 0 comments

Lets say I have a queue for 10 tasks,
I want to set it to pending if q.concurrency <= q.pending, before q.add(someTask),

But due to the internal implemetation of 'add()' method, the intertal pending++ got executed in the end of current eventloop, so when I do

items.forEach(item => {
   if(q.concurrency <= q.pending) {
            // set item pending
   } else { 
           // set item loading
   }
})

the current q.pending is not what I expected

Helps appreciated!