diff --git a/async/async-tests.ts b/async/async-tests.ts index 169bc9cb1..9b0c8e7ee 100644 --- a/async/async-tests.ts +++ b/async/async-tests.ts @@ -145,9 +145,8 @@ q.drain = function () { console.log('all items have been processed'); } -q.push({ name: 'foo' }, function (err) { - console.log('finished processing foo'); -}); +q.push({ name: 'foo' }); + q.push({ name: 'bar' }, function (err) { console.log('finished processing bar'); }); @@ -156,6 +155,38 @@ q.push([{ name: 'baz' }, { name: 'bay' }, { name: 'bax' }], function (err) { console.log('finished processing bar'); }); +q.unshift({ name: 'foo' }); + +q.unshift({ name: 'bar' }, function (err) { + console.log('finished processing bar'); +}); + +q.unshift([{ name: 'baz' }, { name: 'bay' }, { name: 'bax' }], function (err) { + console.log('finished processing bar'); +}); + +var qLength : number = q.length(); +var qStarted : boolean = q.started; +var qPaused : boolean = q.paused; +var qProcessingCount : number = q.running(); +var qIsIdle : boolean = q.idle(); + +q.saturated = function() { + console.log('queue is saturated.'); +} + +q.empty = function() { + console.log('queue is empty.'); +} + +q.drain = function() { + console.log('queue was drained.'); +} + +q.pause(); +q.resume(); +q.kill(); + // tests for strongly typed tasks var q2 = async.queue(function (task: string, callback) { console.log('Task: ' + task); @@ -172,6 +203,16 @@ q2.push(['task3', 'task4', 'task5'], function (error, results: string[]) { console.log('Finished tasks: ' + results.join(', ')); }); +q2.unshift('task1'); + +q2.unshift('task2', function (error, results: string[]) { + console.log('Finished tasks: ' + results.join(', ')); +}); + +q2.unshift(['task3', 'task4', 'task5'], function (error, results: string[]) { + console.log('Finished tasks: ' + results.join(', ')); +}); + var filename = ''; async.auto({ get_data: function (callback) { }, diff --git a/async/async.d.ts b/async/async.d.ts index 25736941f..d1d592629 100644 --- a/async/async.d.ts +++ b/async/async.d.ts @@ -15,11 +15,20 @@ interface AsyncWorker { (task: T, callback: Function): void; } interface AsyncQueue { length(): number; concurrency: number; + started: boolean; + paused: boolean; push(task: T, callback?: AsyncMultipleResultsCallback): void; push(task: T[], callback?: AsyncMultipleResultsCallback): void; - saturated: AsyncMultipleResultsCallback; - empty: AsyncMultipleResultsCallback; - drain: AsyncMultipleResultsCallback; + unshift(task: T, callback?: AsyncMultipleResultsCallback): void; + unshift(task: T[], callback?: AsyncMultipleResultsCallback): void; + saturated: () => any; + empty: () => any; + drain: () => any; + running(): number; + idle(): boolean; + pause(): void; + resume(): void; + kill(): void; } interface Async {