{"id":46293,"library":"rx-queue","title":"rx-queue","description":"rx-queue is a ReactiveX-based queue library offering DelayQueue, ThrottleQueue, DebounceQueue, DelayQueueExecutor, and concurrencyExecuter. Built on RxJS and IxJS, it provides easy-to-use FIFO queues with delay, throttle, and debounce features. Version 1.0.5 is the latest stable release, requiring Node >=16 and npm >=7. It ships with TypeScript types and is fully ESM. Differentiators include a simple API, RxJS integration, and built-in executor for delayed function calls.","status":"active","version":"1.0.5","language":"javascript","source_language":"en","source_url":"https://github.com/huan/rx-queue","tags":["javascript","queue","delay","executor","throttle","debounce","rxjs","rx","fifo","typescript"],"install":[{"cmd":"npm install rx-queue","lang":"bash","label":"npm"},{"cmd":"yarn add rx-queue","lang":"bash","label":"yarn"},{"cmd":"pnpm add rx-queue","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"Core dependency for reactive streams and Subject base class","package":"rxjs","optional":false},{"reason":"Used for AsyncIterable support in concurrencyExecuter","package":"ix","optional":true}],"imports":[{"note":"Named export, not default. ESM-only; CommonJS not supported.","wrong":"import RxQueue from 'rx-queue'","symbol":"RxQueue","correct":"import { RxQueue } from 'rx-queue'"},{"note":"Named export. Package is ESM-only; require() will fail.","wrong":"const { DelayQueue } = require('rx-queue')","symbol":"DelayQueue","correct":"import { DelayQueue } from 'rx-queue'"},{"note":"Named export. Works with both TypeScript and JavaScript.","symbol":"ThrottleQueue","correct":"import { ThrottleQueue } from 'rx-queue'"},{"note":"Named export. DebounceQueue drops intermediate values within the period.","symbol":"DebounceQueue","correct":"import { DebounceQueue } from 'rx-queue'"},{"note":"Executes delayed function calls. Named export.","symbol":"DelayQueueExecutor","correct":"import { DelayQueueExecutor } from 'rx-queue'"},{"note":"Named export. Note the misspelling 'concurrencyExecuter' (not 'executor').","wrong":"import { concurrencyExecutor } from 'rx-queue'","symbol":"concurrencyExecuter","correct":"import { concurrencyExecuter } from 'rx-queue'"}],"quickstart":{"code":"import { ThrottleQueue } from 'rx-queue';\n\nconst throttle = new ThrottleQueue(1000);\nthrottle.subscribe(value => console.log('output:', value));\n\nthrottle.next('A');\nthrottle.next('B');\nthrottle.next('C');\n// Only 'A' is output immediately; 'B' and 'C' are dropped.\nsetTimeout(() => throttle.next('D'), 1500);\n// After 1.5s, 'D' is output.","lang":"typescript","description":"Creates a ThrottleQueue that emits at most one item per second, demonstrating throttle behavior."},"warnings":[{"fix":"Use import syntax or dynamic import(). Ensure your project is configured for ESM (e.g., set \"type\": \"module\" in package.json).","message":"Version 1.0.5 is ESM-only. CommonJS require() will throw an error.","severity":"breaking","affected_versions":">=1.0.0"},{"fix":"Use the exact function name concurrencyExecuter, or deprecate it and use alternatives.","message":"concurrencyExecuter() is misspelled. It is not 'concurrencyExecutor'.","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"Avoid calling .complete() or .error() on the queue if you intend to reuse it.","message":"All queues (RxQueue, DelayQueue, etc.) inherit from RxJS Subject. Calling .complete() or .error() on the queue will terminate it permanently.","severity":"gotcha","affected_versions":">=0.1.0"},{"fix":"If using concurrencyExecuter, ensure ix is installed and compatible. Check migration guides.","message":"IxJS (ix) is an optional dependency for concurrencyExecuter, but IxJS 4.x+ may have breaking changes.","severity":"deprecated","affected_versions":">=1.0.0"}],"env_vars":null,"search_vec":"'1.0.5':41 '16':49 '7':52 'api':66 'base':11 'built':21,71 'built-in':70 'call':77 'concurrencyexecut':20 'debounc':38,83 'debouncequeu':17 'delay':35,75,80 'delayqueu':15 'delayqueueexecutor':18 'differenti':62 'easi':29 'easy-to-us':28 'esm':61 'executor':73,81 'featur':39 'fifo':32,86 'fulli':60 'function':76 'includ':63 'integr':68 'ixj':25 'javascript':78 'latest':44 'librari':13 'node':48 'npm':51 'offer':14 'provid':27 'queue':3,6,12,33,79 'reactivex':10 'reactivex-bas':9 'releas':46 'requir':47 'rx':2,5,85 'rx-queue':1,4 'rxjs':23,67,84 'ship':54 'simpl':65 'stabl':45 'throttl':36,82 'throttlequeu':16 'type':57 'typescript':56,87 'use':31 'version':40","created_at":"2026-06-07T12:59:13.840557+00:00","updated_at":"2026-06-07T12:59:13.840557+00:00","problems":[{"fix":"Switch to import syntax (e.g., import { RxQueue } from 'rx-queue') or use dynamic import().","cause":"Using CommonJS require() on an ESM-only package.","error":"Error [ERR_REQUIRE_ESM]: require() of ES Module from ... not supported."},{"fix":"Ensure you import concurrencyExecuter exactly as 'concurrencyExecuter' (not 'concurrencyExecutor').","cause":"Misspelled function name or mismatched import.","error":"TypeError: (intermediate value) is not a function when calling concurrencyExecuter"},{"fix":"Install RxJS 6 or 7 and use pipeable operators.","cause":"Using older RxJS 5 style APIs; rx-queue relies on RxJS 6+.","error":"rxjs_1.Observable.create is not a function"}],"ecosystem":"npm","meta_description":null,"install_score":null,"quickstart_score":null,"quickstart_tag":null,"pypi_latest":null,"cli_name":null,"cli_version":null,"type":"library","homepage":"https://github.com/huan/rx-queue#readme","github":"https://github.com/huan/rx-queue","docs":null,"changelog":null,"pypi":null,"npm":"rx-queue","openapi_spec":null,"status_page":null,"smithery":null,"categories":["devops"],"base_url":null,"auth_type":null,"provenance":{"verified_status":null,"verified_at":null,"last_verified":"2026-06-07","next_check":"2026-09-05","install_tag":null}}