Replace setImmediate with queueMicrotask.

This commit is contained in:
David 2021-02-08 15:26:07 -06:00
parent 4d2b327da7
commit 9b58b10421
3 changed files with 4 additions and 13 deletions

View file

@ -1,7 +1,5 @@
"use strict";
require(`setimmediate`);
// An order represents a pending push or shift.
const Order = (channel) => {
let order;
@ -249,7 +247,7 @@ const Channel = function(length = 0) {
shift: function() {
const { order, promise } = Order(this);
shifts.push(order);
setImmediate(processOrders);
queueMicrotask(processOrders);
// Don't freeze promise because Bluebird expects it to be mutable.
return promise;
@ -321,7 +319,7 @@ const Channel = function(length = 0) {
processOrders();
// Give remaining orders in flight time to resolve before returning.
setImmediate(resolve);
queueMicrotask(resolve);
}
}),
@ -348,7 +346,7 @@ const Channel = function(length = 0) {
order.reject(new Error(`Can't push more than one value at a time.`));
} else {
pushes.push(order);
setImmediate(processOrders);
queueMicrotask(processOrders);
}
// Don't freeze promise because Bluebird expects it to be mutable.

5
package-lock.json generated
View file

@ -2344,11 +2344,6 @@
"integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
"dev": true
},
"setimmediate": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz",
"integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU="
},
"shebang-command": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",

View file

@ -10,9 +10,7 @@
"bugs": {
"url": "https://gitlab.com/NodeGuy/channel/issues"
},
"dependencies": {
"setimmediate": "1.0.5"
},
"dependencies": {},
"devDependencies": {
"@nodeguy/assert": "0.1.4",
"@stryker-mutator/core": "1.1.0",