p-queue icon indicating copy to clipboard operation
p-queue copied to clipboard

Is it feasible to change priority of a Queued item on the fly

Open Raishav opened this issue 1 year ago • 1 comments

I'm working on a custom loader with asynchronous load promises, I want to change the priority of a specific promise function, can this be achieved using current code?

I managed to achieve something by queuing up the promise function again with updated priority, but this loads the item twice.

prioritize(key: string) {
    const promise = this.taskList.get(key);
    if (!promise) {
      console.error("No such promise: ", key);
    } else {
      this.pause();
      this.queue.add(promise, { priority: 2 });
      this.resume();
    }
}

Thanks.

Raishav avatar Jul 03 '24 06:07 Raishav

There could maybe be a .setPriority(fn, {priority}) method that could accept the original function you passed to .add() (for ID purposes) and let you change the priority.

sindresorhus avatar Jul 03 '24 11:07 sindresorhus