>  기사  >  웹 프론트엔드  >  Promise.all을 사용하여 URL 배열에서 텍스트를 효율적으로 검색하는 방법은 무엇입니까?

Promise.all을 사용하여 URL 배열에서 텍스트를 효율적으로 검색하는 방법은 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-10-27 15:10:29939검색

How to Efficiently Retrieve Text from an Array of URLs Using Promise.all?

Promise.all을 활용하여 URL 배열을 검색하는 방법

이 시나리오를 고려하십시오. URL 배열이 있고 다음 배열이 포함된 객체를 얻으려고 합니다. 해당 URL에 있는 파일의 해당 텍스트. Promise.all 함수는 이 작업을 처리하기 위한 편리한 접근 방식을 제공합니다.

처음에 시도한 코드는 Promise.all을 사용하여 각 URL에 대한 약속을 검색했습니다. 그러나 후속적인 results.forEach 호출은 혼란을 야기할 수 있습니다. 이 함수는 각 요소에 대한 콜백을 트리거하여 정의되지 않은 값의 배열을 생성합니다.

올바른 접근 방식은 Promise.all을 두 번 사용하는 것입니다. 첫 번째 인스턴스는 URL에서 응답을 가져오는 반면, 두 번째 인스턴스는 응답을 텍스트로 변환하고 이러한 텍스트의 배열을 반환합니다.

Promise.all(urls.map(u=>fetch(u))).then(responses =>
    Promise.all(responses.map(res => res.text()))
).then(texts => {
    …
})

또는 응답에서 직접 텍스트를 가져와 코드를 단순화할 수 있습니다. :

Promise.all(urls.map(url =>
    fetch(url).then(resp => resp.text())
)).then(texts => {
    …
})

async/await 구문을 사용하면 코드가 더욱 간결해집니다.

const texts = await Promise.all(urls.map(async url => {
  const resp = await fetch(url);
  return resp.text();
}));

이 접근 방식을 사용하면 URL 배열을 효과적으로 가져오고 다음을 사용하여 개체를 얻을 수 있습니다. 해당 텍스트 값.

위 내용은 Promise.all을 사용하여 URL 배열에서 텍스트를 효율적으로 검색하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.