race: (values: Iterable<IPromise<TValue, TReason>>) => IPromise<TValue, TReason>