Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 자바스크립트로 하는 자료 구조와 알고리즘
- 러닝리액트
- search input
- react search input
- react-beautiful-dnd
- new Promise()
- debound
- 넥스트 검색엔진최적화
- 자바스크립트로 달력만들기
- 노드교과서
- 코어자바스트립트
- 자바스크립트
- 프로미스
- 초집합
- JavaScript
- 올리브영 발색비교 기능구현하기
- 자바스크립트 reduce 함수 직접 만들어보기
- react 배열 재정렬하기
- range 함수 직접 만들기
- 리액트 고차컴포넌트
- compose 함수
- 순수함수
- 검색 자동완성
- 리액트 dragdrap
- 프로미스 직접 구현하기
- 유저접근제한
- 자바스크립트 검색 구현하기
- 리엑트 검색 기능 구현하기
- 리액트 이미지 미리보기
- next seo
Archives
- Today
- Total
미주알고주알
[Javascript] Promise.all 메소드 직접 구현하기 본문
`Promise.all` 은 여러 프로미스를 병렬적으로 처리하는 기능을 갖고 있다.
이런 `all` 메소드를 직접 구현해보면 다음과 같다.
인자로 들어온 프로미스 배열은 모두 `pending` 상태로 변환되어야 하기 때문에, 결과를 담는 `results` 변수 안에 각각의 프로미스의`then` 또는 `await` 된 `result`으로서 들어와야 한다.
// method1
const promiseAll = async promises => {
const results = [];
for (let i = 0; i < promises.length; i += 1) {
results[i] = await promises[i](i + 1);
}
return results;
};
// method2
const promiseAll = async promises => {
const results = [];
const rs = promises.map((p, i) => p(i + 1));
for await (const r of rs) {
results.push(r);
}
return results;
};
'Javascript' 카테고리의 다른 글
[Javascript] new Set 객체 활용하기(교집합, 합집합, 차집합, 초집합) (0) | 2023.03.24 |
---|---|
[Javascript] iterator을 활용해 지하철 노선도 만들기 (1) | 2023.03.24 |
[Javascript] new Date 객체로 달력 만들어보기 (0) | 2023.03.24 |
[Javascript] Promise 객체 직접 구현하기 (0) | 2023.03.24 |
[Javascript] 클로져 (0) | 2023.03.06 |