Promise Waiting으로 네트워크 오류 처리
JavaScript에서 Promise.all()은 여러 비동기 작업을 관리하기 위한 강력한 도구입니다. 그러나 일부 약속이 거부되더라도 모든 약속을 완료하려는 경우에는 적합하지 않을 수 있습니다.
이 시나리오를 처리하려면 약속을 이행 또는 거부된 개체로 변환하는 사용자 정의 "Promise Reflect" 기능을 구현할 수 있습니다. status:
const reflect = p => p.then(v => ({ v, status: "fulfilled" }), e => ({ e, status: "rejected" }));
이 반영 기능을 사용하면 원래 Promise 배열을 반영된 배열에 매핑할 수 있습니다. promies:
var arr = [ fetch('index.html'), fetch('http://does-not-exist') ] var reflectedPromises = arr.map(reflect);
마지막으로 Promise.all()을 사용하여 반영된 모든 Promise가 완료될 때까지 기다릴 수 있습니다.
Promise.all(reflectedPromises).then(results => { var success = results.filter(x => x.status === "fulfilled"); });
이 접근 방식을 사용하면 네트워크 오류를 우아하게 처리하고 진행할 수 있습니다. 모든 요청이 완료된 후에만 가능합니다. 각각 성공 및 결과 배열에서 해결된 값과 오류에 액세스할 수 있습니다.
또는 이제 기본 Promise.allSettled() 메서드를 사용할 수 있습니다.
Promise.allSettled([promise]).then(([result]) => { console.log(result); // Handles both fulfilled and rejected promises });
위 내용은 JavaScript에서 Promise를 사용할 때 네트워크 오류를 어떻게 적절하게 처리할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!