Add definition with tests for spread

This commit is contained in:
Michael Nahkies
2015-06-10 17:01:55 +12:00
parent 52dc8fc393
commit 097dc2e2ba
2 changed files with 12 additions and 3 deletions

View File

@@ -132,9 +132,11 @@ promise = when(1).then((val: number) => when(val + val), (err: any) => 2);
/* promise.spread(onFulfilledArray) */
// TODO: Work out how to do this...
// promise = when([1, '2', true]).spread((a: number, b: string, c: boolean) => a);
// promise = when([1, '2', true]).spread((a: number, b: string, c: boolean) => when(a));
promise = when([]).spread(() => 2);
promise = when([1]).spread((a: number) => a);
promise = when([1, '2']).spread((a: number, b: string) => a);
promise = when([1, '2', true]).spread((a: number, b: string, c: boolean) => a);
promise = when([1, '2', true]).spread((a: number, b: string, c: boolean) => when(a));
/* promise.fold(combine, promise2) */

7
when/when.d.ts vendored
View File

@@ -180,6 +180,13 @@ declare module When {
then<U>(onFulfilled: (value: T) => U | Promise<U>, onRejected?: (reason: any) => U | Promise<U>, onProgress?: (update: any) => void): Promise<U>;
spread<T>(onFulfilled: _.Fn0<Promise<T> | T>): Promise<T>;
spread<A1, T>(onFulfilled: _.Fn1<A1, Promise<T> | T>): Promise<T>;
spread<A1, A2, T>(onFulfilled: _.Fn2<A1, A2, Promise<T> | T>): Promise<T>;
spread<A1, A2, A3, T>(onFulfilled: _.Fn3<A1, A2, A3, Promise<T> | T>): Promise<T>;
spread<A1, A2, A3, A4, T>(onFulfilled: _.Fn4<A1, A2, A3, A4, Promise<T> | T>): Promise<T>;
spread<A1, A2, A3, A4, A5, T>(onFulfilled: _.Fn5<A1, A2, A3, A4, A5, Promise<T> | T>): Promise<T>;
done<U>(onFulfilled: (value: T) => void, onRejected?: (reason: any) => void): void;
fold<U, V>(combine: (value1: T, value2: V) => U | Promise<U>, value2: V | Promise<V>): Promise<U>;