This behaves pretty much the same as Promise.all(), so it will abort and
return a FailureResult as soon as a value is a rejected value.
example
Example with all resolved promises
constvalues = [Promise.resolve(1), Promise.resolve(2), Promise.resolve(3)]const [res, err] = (awaitResult.all(values)).unwrap()if (err) { // This will never be `true` in this casereturn}console.log(res.map((num) =>`Result ${num}`).join(', '))// Result 1, Result 2, Result 3
example
Example where one or more promises are rejected
constvalues = [Promise.resolve(1), Promise.reject(2), Promise.resolve(3)]const [res, err] = (awaitResult.all(values)).unwrap()if (err) { // This will always be `true` in this caseconsole.error('An error occured:', err.message)return}
If SuccessAndFailureResult.success is true there are one or more resovled
promises.
Likewise, if SuccessAndFailureResult.failure is true there are one or
more rejected promises.
example
constargs = [Promise.resolve(success(1)),Promise.resolve(success(2)),Promise.reject(failure(newError('First failure'))),]constres = awaitResult.allSettled(args)if (res.success) { // Will be `true` in this caseconsole.log('Values:', res.result.join(', '))// Values: 1, 2}if (res.failure) { // Will also be true in this caseconsole.error('Errors:', res.error.map((e) =>e.message).join(', '))// Errors: First failure}
Creates a
Promise
that resolves to either a SuccessResult or a FailureResult.This behaves pretty much the same as
Promise.all()
, so it will abort and return a FailureResult as soon as a value is a rejected value.Example with all resolved promises
Example where one or more promises are rejected