在事件循环中为nodejs任务分配优先级

有什么办法可以在事件循环中应用Node.js任务的优先级。 我想为nodejs的事件循环中存在的任务分配优先级。
假设在一个事件循环中有5个作业A,B,C,D,E具有相同的优先级,然后接收下一个作业,其优先级高于后五个作业。 然后事件循环开始执行该更高优先级的作业。

       

网上收集的解决方案 "在事件循环中为nodejs任务分配优先级"

node.js中的事件循环不支持优先级。 看一些文件:

没有重写它,我不认为你可以做很多事情。

你应该使用优先级队列,比如priorityqueuejs

通过这种方式,您可以使最高优先级的项目出列并执行它。

一些代码:

'use strict'; var PriorityQueue = require('priorityqueuejs'); var queue = new PriorityQueue(function(a, b) { return a.value - b.value; }); queue.enq({ value: 10, func: function() { console.log("PRIORITY: 10"); } }); queue.enq({ value: 500, func: function() { console.log("PRIORITY: 500"); } }); queue.enq({ value: 300, func: function() { console.log("PRIORITY: 300"); } }); queue.enq({ value: 100, func: function() { console.log("PRIORITY: 100"); } }); (function executeNext() { if(queue.size()) { var next = queue.deq(); next.func(); if(queue.size()) { setTimeout(executeNext, 0); } } })(); 

输出是:

 PRIORITY: 500 PRIORITY: 300 PRIORITY: 100 PRIORITY: 10 

这里是executeNext函数提取下一个最高优先级的项目并执行它。