Skip to content

Commit 3552529

Browse files
committed
updated PR following review from @lukehoban and @chbrown
1 parent c3a6887 commit 3552529

File tree

2 files changed

+86
-31
lines changed

2 files changed

+86
-31
lines changed

async/async-tests.ts

Lines changed: 64 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,17 @@ async.series([
6767
],
6868
function (err, results) { });
6969

70+
async.series<string>([
71+
function (callback) {
72+
callback(null, 'one');
73+
},
74+
function (callback) {
75+
callback(null, 'two');
76+
},
77+
],
78+
function (err, results) { });
79+
80+
7081
async.series({
7182
one: function (callback) {
7283
setTimeout(function () {
@@ -81,6 +92,21 @@ async.series({
8192
},
8293
function (err, results) { });
8394

95+
async.series<number>({
96+
one: function (callback) {
97+
setTimeout(function () {
98+
callback(null, 1);
99+
}, 200);
100+
},
101+
two: function (callback) {
102+
setTimeout(function () {
103+
callback(null, 2);
104+
}, 100);
105+
},
106+
},
107+
function (err, results) { });
108+
109+
84110
async.parallel([
85111
function (callback) {
86112
setTimeout(function () {
@@ -95,6 +121,20 @@ async.parallel([
95121
],
96122
function (err, results) { });
97123

124+
async.parallel<string>([
125+
function (callback) {
126+
setTimeout(function () {
127+
callback(null, 'one');
128+
}, 200);
129+
},
130+
function (callback) {
131+
setTimeout(function () {
132+
callback(null, 'two');
133+
}, 100);
134+
},
135+
],
136+
function (err, results) { });
137+
98138

99139
async.parallel({
100140
one: function (callback) {
@@ -110,6 +150,20 @@ async.parallel({
110150
},
111151
function (err, results) { });
112152

153+
async.parallel<number>({
154+
one: function (callback) {
155+
setTimeout(function () {
156+
callback(null, 1);
157+
}, 200);
158+
},
159+
two: function (callback) {
160+
setTimeout(function () {
161+
callback(null, 2);
162+
}, 100);
163+
},
164+
},
165+
function (err, results) { });
166+
113167

114168
var count = 0;
115169

@@ -136,7 +190,7 @@ async.waterfall([
136190
], function (err, result) { });
137191

138192

139-
var q = async.queue(function (task: any, callback) {
193+
var q = async.queue<any>(function (task: any, callback) {
140194
console.log('hello ' + task.name);
141195
callback();
142196
}, 2);
@@ -189,29 +243,29 @@ q.resume();
189243
q.kill();
190244

191245
// tests for strongly typed tasks
192-
var q2 = async.queue(function (task: string, callback) {
246+
var q2 = async.queue<string>(function (task: string, callback) {
193247
console.log('Task: ' + task);
194248
callback();
195249
}, 1);
196250

197251
q2.push('task1');
198252

199-
q2.push('task2', function (error, results: string[]) {
200-
console.log('Finished tasks: ' + results.join(', '));
253+
q2.push('task2', function (error) {
254+
console.log('Finished tasks');
201255
});
202256

203-
q2.push(['task3', 'task4', 'task5'], function (error, results: string[]) {
204-
console.log('Finished tasks: ' + results.join(', '));
257+
q2.push(['task3', 'task4', 'task5'], function (error) {
258+
console.log('Finished tasks');
205259
});
206260

207261
q2.unshift('task1');
208262

209-
q2.unshift('task2', function (error, results: string[]) {
210-
console.log('Finished tasks: ' + results.join(', '));
263+
q2.unshift('task2', function (error) {
264+
console.log('Finished tasks');
211265
});
212266

213-
q2.unshift(['task3', 'task4', 'task5'], function (error, results: string[]) {
214-
console.log('Finished tasks: ' + results.join(', '));
267+
q2.unshift(['task3', 'task4', 'task5'], function (error) {
268+
console.log('Finished tasks');
215269
});
216270

217271
var filename = '';

async/async.d.ts

Lines changed: 22 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -3,31 +3,32 @@
33
// Definitions by: Boris Yankov <https://github.com/borisyankov/>
44
// Definitions: https://github.com/borisyankov/DefinitelyTyped
55

6-
interface Dict<T> { [key: string]: T; }
6+
interface Dictionary<T> { [key: string]: T; }
77

88
interface ErrorCallback { (err?: Error): void; }
99
interface AsyncResultCallback<T> { (err: Error, result: T): void; }
1010
interface AsyncResultArrayCallback<T> { (err: Error, results: T[]): void; }
11-
interface AsyncResultDictCallback<T> { (err: Error, results: Dict<T>): void; }
11+
interface AsyncResultObjectCallback<T> { (err: Error, results: Dictionary<T>): void; }
1212
interface AsyncTimesCallback<T> { (n: number, callback: AsyncResultArrayCallback<T>): void; }
1313

1414
interface AsyncIterator<T> { (item: T, callback: ErrorCallback): void; }
1515
interface AsyncResultIterator<T, R> { (item: T, callback: AsyncResultCallback<R>): void; }
1616
interface AsyncMemoIterator<T, R> { (memo: R, item: T, callback: AsyncResultCallback<R>): void; }
1717

18-
interface AsyncWorker<T> { (task: T, callback: Function): void; }
18+
interface AsyncWorker<T> { (task: T, callback: ErrorCallback): void; }
1919

20-
interface AsyncTaskFn<T> { (callback: AsyncResultCallback<T>): void; }
20+
interface AsyncFunction<T> { (callback: AsyncResultCallback<T>): void; }
21+
interface AsyncVoidFunction { (callback: ErrorCallback): void; }
2122

2223
interface AsyncQueue<T> {
2324
length(): number;
2425
concurrency: number;
2526
started: boolean;
2627
paused: boolean;
27-
push(task: T, callback?: AsyncResultArrayCallback<T>): void;
28-
push(task: T[], callback?: AsyncResultArrayCallback<T>): void;
29-
unshift(task: T, callback?: AsyncResultArrayCallback<T>): void;
30-
unshift(task: T[], callback?: AsyncResultArrayCallback<T>): void;
28+
push(task: T, callback?: ErrorCallback): void;
29+
push(task: T[], callback?: ErrorCallback): void;
30+
unshift(task: T, callback?: ErrorCallback): void;
31+
unshift(task: T[], callback?: ErrorCallback): void;
3132
saturated: () => any;
3233
empty: () => any;
3334
drain: () => any;
@@ -86,23 +87,23 @@ interface Async {
8687
concatSeries<T, R>(arr: T[], iterator: AsyncResultIterator<T, R[]>, callback: AsyncResultArrayCallback<R>): any;
8788

8889
// Control Flow
89-
series<T>(tasks: Array<AsyncTaskFn<T>>, callback?: AsyncResultArrayCallback<T>): void;
90-
series<T>(tasks: Dict<AsyncTaskFn<T>>, callback?: AsyncResultDictCallback<T>): void;
91-
parallel<T>(tasks: Array<AsyncTaskFn<T>>, callback?: AsyncResultArrayCallback<T>): void;
92-
parallel<T>(tasks: Dict<AsyncTaskFn<T>>, callback?: AsyncResultDictCallback<T>): void;
93-
parallelLimit<T>(tasks: Array<AsyncTaskFn<T>>, limit: number, callback?: AsyncResultArrayCallback<T>): void;
94-
parallelLimit<T>(tasks: Dict<AsyncTaskFn<T>>, limit: number, callback?: AsyncResultDictCallback<T>): void;
95-
whilst(test: Function, fn: Function, callback: Function): void;
96-
until(test: Function, fn: Function, callback: Function): void;
97-
waterfall<T>(tasks: Function[], callback?: AsyncResultArrayCallback<T>): void;
98-
waterfall<T>(tasks: Function, callback?: AsyncResultArrayCallback<T>): void;
90+
series<T>(tasks: Array<AsyncFunction<T>>, callback?: AsyncResultArrayCallback<T>): void;
91+
series<T>(tasks: Dictionary<AsyncFunction<T>>, callback?: AsyncResultObjectCallback<T>): void;
92+
parallel<T>(tasks: Array<AsyncFunction<T>>, callback?: AsyncResultArrayCallback<T>): void;
93+
parallel<T>(tasks: Dictionary<AsyncFunction<T>>, callback?: AsyncResultObjectCallback<T>): void;
94+
parallelLimit<T>(tasks: Array<AsyncFunction<T>>, limit: number, callback?: AsyncResultArrayCallback<T>): void;
95+
parallelLimit<T>(tasks: Dictionary<AsyncFunction<T>>, limit: number, callback?: AsyncResultObjectCallback<T>): void;
96+
whilst(test: () => boolean, fn: AsyncVoidFunction, callback: (err: any) => void): void;
97+
doWhilst(fn: AsyncVoidFunction, test: () => boolean, callback: (err: any) => void): void;
98+
until(test: () => boolean, fn: AsyncVoidFunction, callback: (err: any) => void): void;
99+
doUntil(fn: AsyncVoidFunction, test: () => boolean, callback: (err: any) => void): void;
100+
waterfall(tasks: Function[], callback?: AsyncResultArrayCallback<any>): void;
99101
queue<T>(worker: AsyncWorker<T>, concurrency: number): AsyncQueue<T>;
100102
priorityQueue<T>(worker: AsyncWorker<T>, concurrency: number): AsyncPriorityQueue<T>;
101-
// auto(tasks: any[], callback?: AsyncResultArrayCallback<T>): void;
102103
auto(tasks: any, callback?: AsyncResultArrayCallback<any>): void;
103104
iterator(tasks: Function[]): Function;
104-
apply<T>(fn: Function, ...arguments: any[]): AsyncTaskFn<T>;
105-
nextTick<T>(callback: Function): void;
105+
apply(fn: Function, ...arguments: any[]): AsyncFunction<any>;
106+
nextTick(callback: Function): void;
106107

107108
times<T> (n: number, callback: AsyncTimesCallback<T>): void;
108109
timesSeries<T> (n: number, callback: AsyncTimesCallback<T>): void;

0 commit comments

Comments
 (0)