Recent Posts
Recent Comments
Archives
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 스파르타코딩클럽
- vercel
- 프로젝트 셋팅
- vscode
- 모던 자바스크립트
- array정적메서드
- 소셜 로그인
- 코드카타
- useRouter
- nextjs
- 셋팅
- 코딩테스트
- 내일배움캠프
- Next
- 티스토리챌린지
- js
- git
- domain
- error
- 구글 로그인
- CORS
- 코테
- 자주 까먹는
- 모던자바스크립트
- 초기셋팅
- 프로그래머스
- 리터럴
- React
- deep dive
- 오블완
- Today
- Total
파피루스
[javascript] Array.fromAsync() 본문
(2) Array.fromAsync()
비동기 순회 가능, 순회 가능, 또는 유사 배열 객체에서 얕게 복사된 새로운 Array 인스턴스를 만듭니다.
구문
Array.from(arrayLike, mapFn, thisArg);
- 매개변수
- [필수] arrayLike : 배열로 변환할 객체
- [선택] mapFn : (element, index) => { return A; }
- [선택] thisArg : mapFn 실행 시의 this 값
- 반환값 : 이행 값이 새 Array 인스턴스인 새로운 Promise입니다.
사용 예시
const asyncIterable = (async function* () {
for (let i = 0; i < 5; i++) {
await new Promise((resolve) => setTimeout(resolve, 10 * i));
yield i;
} })();
Array.fromAsync(asyncIterable).then((array) => console.log(array)); // [0, 1, 2, 3, 4]
Promise.all()과 비교하기
Array.fromAsync()는 값을 순차적으로 await 합니다. Promise.all()은 모든 값을 동시에 await 합니다.
function* makeAsyncIterable() {
for (let i = 0; i < 5; i++) {
yield new Promise((resolve) => setTimeout(resolve, 100));
}
}
(async () => {
console.time("Array.fromAsync() 시간");
await Array.fromAsync(makeAsyncIterable());
console.timeEnd("Array.fromAsync() 시간");
// Array.fromAsync() 시간: 503.610ms
console.time("Promise.all() 시간");
await Promise.all(makeAsyncIterable());
console.timeEnd("Promise.all() 시간");
// Promise.all() 시간: 101.728ms
})();
참고 : 2024년 1월부터 다양한 브라우저(크롬, 엣지, 파이어폭스, 사파리)에서 사용 (이전 장치, 브라우저에서는 작동하지 않을 수 있음)
삼성 인터넷, nodejs 호환 불가
출처 : https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/fromAsync
'Today I Learned' 카테고리의 다른 글
[javascript] Array.concat() (0) | 2024.05.05 |
---|---|
[javascript] Array.at() (0) | 2024.05.05 |
[javascript] Array.of() (1) | 2024.05.02 |
[javascript] Array.isArray() (0) | 2024.05.02 |
[javascript] Array.from() (0) | 2024.04.27 |