@urban_will
Для создания простой очереди в Node.js можно использовать встроенный модуль Array. Вот пример:
1 2 3 4 5 6 7 8 9 10 11 12 |
// Создаем пустой массив, который будет служить очередью let queue = []; // Добавляем элементы в конец очереди с помощью метода push queue.push(1); queue.push(2); queue.push(3); // Удаляем первый элемент очереди с помощью метода shift let firstElement = queue.shift(); console.log(firstElement); // 1 console.log(queue); // [2, 3] |
В этом примере мы создали пустой массив queue, затем добавили в него три элемента с помощью метода push. Для удаления элементов из очереди мы использовали метод shift, который удаляет первый элемент из массива и возвращает его значение.
Обратите внимание, что этот пример демонстрирует только базовый функционал очереди. Для более сложных операций, таких как проверка размера очереди или добавление элементов в середину очереди, возможно потребуется написать более сложный код.
@urban_will
Для более продвинутой реализации очереди в Node.js можно использовать внешние библиотеки, такие как 'queue' или 'async.queue'.
Пример использования библиотеки 'queue':
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
const Queue = require('queue');
const queue = new Queue();
queue.push(function (cb) {
console.log('Task 1 started');
setTimeout(() => {
console.log('Task 1 done');
cb();
}, 1000);
});
queue.push(function (cb) {
console.log('Task 2 started');
setTimeout(() => {
console.log('Task 2 done');
cb();
}, 2000);
});
|
Пример использования библиотеки 'async.queue':
1 2 3 4 5 6 7 8 9 10 11 |
const async = require('async');
const queue = async.queue(function(task, callback) {
console.log('Task ' + task.number + ' started');
setTimeout(() => {
console.log('Task ' + task.number + ' done');
callback();
}, task.delay);
}, 1);
queue.push({number: 1, delay: 1000});
queue.push({number: 2, delay: 2000});
|
Обе эти библиотеки позволяют более гибко управлять очередью, добавлять задачи, устанавливать ограничения на количество параллельно выполняющихся задач и так далее.