1. arguments
arguments 는 유사배열 객체이다.
함수 정의 할 때에 파라미터를 정의 하지 않아도
실행문에 파라미터를 넣으면 알아서 배열로 정리 해줌.
배열을 뱉어내는 것처럼 보이지만 사실은 객체라서
isArray로 감별해보면 false가 나온다.
그래서 map, filter 같은 고차배열 함수를 적용하려면
array로 한번 바꾼 뒤에 적용해야 한다.
2. Promise.all()
Promise.all([promise1, promise2, promise3])
.then((results) => {
console.log(results); // 모든 Promise가 성공했을 때 결과가 배열로 반환됨
})
.catch((error) => {
console.error(error); // 하나의 Promise라도 실패하면 이곳에서 에러 처리
});
여러개의 promise를 병렬로 처리하고,
하나라도 받아오는데 실패하면 전체가 거부된 것으로 간주.
거부된 이유를 반환함.
3. Promise.race()
Promise.race([promise1, promise2, promise3])
.then((result) => {
console.log(result); // 가장 빨리 완료된 Promise의 결과
})
.catch((error) => {
console.error(error); // 가장 빨리 실패한 Promise의 에러
});
가장 빨리 처리된 Promise 를 반환.
첫번째 처리된 Promise가 성공인지 실패인지 결과를 반환함.
첫 Promise가 실패이면 Promise 전체가 실패인 것으로 간주.
가장먼저 응답하는 서비스의 데이터만 필요한 경우 사용한다고 함.
가장 빠른 서비스의 응답을 기다리는 동안 다른 서비스의 응답을 기다리지 않아도 되어 응답 시간을 최적화 할 수 있음
setTimeout과 곁들여 쓰면 요청 자체가 너무 오래걸리는 경우를 방지할 수 있음.
let timeout = new Promise((resolve, reject) => {
setTimeout(reject, 5000, 'Request timed out');
});
let request = fetch('https://api.example.com/data');
Promise.race([timeout, request])
.then(response => console.log(response))
.catch(error => console.log(error));
'frontend > javaScript' 카테고리의 다른 글
[js / 알고리즘연습] 주사위게임2 (0) | 2024.09.12 |
---|---|
[js / 알고리즘연습] 등차수열의 특정한 항만 더하기, (0) | 2024.09.12 |
[js 기본기] Nullish coalescing operator, prototype 메소드 (0) | 2024.08.21 |
[js / 알고리즘연습]프로그래머스 lv0.n개 간격의 원소들 (0) | 2024.08.19 |
[js / 알고리즘연습] 프로그래머스 lv1.문자 리스트를 문자열로 변환하기 (0) | 2024.07.12 |