mirror of https://gitee.com/openkylin/nodejs.git
33 lines
909 B
JavaScript
33 lines
909 B
JavaScript
|
// Flags: --expose-internals
|
||
|
'use strict';
|
||
|
|
||
|
const common = require('../common');
|
||
|
const { sleep } = require('internal/util');
|
||
|
|
||
|
// This test verifies that the next tick queue runs after each
|
||
|
// individual Timeout, as well as each individual Immediate.
|
||
|
|
||
|
setTimeout(common.mustCall(() => {
|
||
|
process.nextTick(() => {
|
||
|
// Confirm that clearing Timeouts from a next tick doesn't explode.
|
||
|
clearTimeout(t2);
|
||
|
clearTimeout(t3);
|
||
|
});
|
||
|
}), 1);
|
||
|
const t2 = setTimeout(common.mustNotCall(), 1);
|
||
|
const t3 = setTimeout(common.mustNotCall(), 1);
|
||
|
setTimeout(common.mustCall(), 1);
|
||
|
|
||
|
sleep(5);
|
||
|
|
||
|
setImmediate(common.mustCall(() => {
|
||
|
process.nextTick(() => {
|
||
|
// Confirm that clearing Immediates from a next tick doesn't explode.
|
||
|
clearImmediate(i2);
|
||
|
clearImmediate(i3);
|
||
|
});
|
||
|
}));
|
||
|
const i2 = setImmediate(common.mustNotCall());
|
||
|
const i3 = setImmediate(common.mustNotCall());
|
||
|
setImmediate(common.mustCall());
|