BFE.dev #34. `Promise.any()` 구현
BFE.dev is like a LeetCode for Front End developers. I’m using it to practice my skills.
이 문서는 코딩 문제BFE.dev#34. implement
Promise.any()
에 관한 것입니다.분석
AS MDN은 말합니다.
Promise.any() takes an iterable of Promise objects and, as soon as one of the promises in the iterable fulfils, returns a single promise that resolves with the value from that promise
e item one by one randomly from rest possible positions.
우리는 정의를 따르고 전달된 약속이 해결될 때 해결되는 새로운 약속을 만들 수 있습니다.
문제는 모든 약속이 거부될 때 모든 오류를 보관할 배열이 필요하고 최종적으로 반환된 약속을 계산하여 거부한다는 것입니다.
코드를 보여주세요
/**
* @param {Array<Promise>} promises
* @returns {Promise}
*/
function any(promises) {
// return a Promise, which resolves as soon as one promise resolves
return new Promise((resolve, reject) => {
let isFulfilled = false
const errors = []
let errorCount = 0
promises.forEach((promise, index) => promise.then((data) => {
if (!isFulfilled) {
resolve(data)
isFulfilled = true
}
}, (error) => {
errors[index] = error
errorCount += 1
if (errorCount === promises.length) {
reject(new AggregateError('none resolved', errors))
}
}))
})
}
합격
다음은 설명하는 동영상입니다.
도움이 되었기를 바라며 here에서 시도해 볼 수 있습니다.
Reference
이 문제에 관하여(BFE.dev #34. `Promise.any()` 구현), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/jser_zanp/bfe-dev-34-implement-promise-any-4b0f텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)