public static Promise When(params Promise[] promises)
{
var i = promises.Length;
return new Promise((deferrer) =>
{
foreach (var promise in promises)
{
promise.Then((data) =>
{
if (--i == 0)
{
deferrer.Resolve(data);
}
}).Error(deferrer.Reject);
}
});
}