MediumPro challengePythonJavaScriptTypeScript

Implement Promise.allSettled

AsyncPromises

Implement promiseAllSettled(promises) — returns a promise that resolves
once all input promises have settled (either fulfilled or rejected), with
an array of {status, value} or {status, reason} descriptors.

Do NOT use Promise.allSettled itself.

Sample tests

Test #1All resolved
Input: [[{"value":1,"reject":false},{"value":2,"reject":false}]]
Output: [{"value":1,"status":"fulfilled"},{"value":2,"status":"fulfilled"}]
Test #2Single resolved
Input: [[{"value":"x","reject":false}]]
Output: [{"value":"x","status":"fulfilled"}]
Test #3Mixed resolve/reject
Input: [[{"value":"err","reject":true},{"value":42,"reject":false}]]
Output: [{"reason":"err","status":"rejected"},{"value":42,"status":"fulfilled"}]
Test #4All rejected
Input: [[{"value":"a","reject":true},{"value":"b","reject":true}]]
Output: [{"reason":"a","status":"rejected"},{"reason":"b","status":"rejected"}]
Test #5Empty array
Input: [[]]
Output: []