한 번 사용
await
하여 여러 비동기 프로세스를 기다리세요.
JavaScript의 장점 중 하나는 비동기 작업을 수행하여 프로세스가 서로 기다리는 것을 방지하는 기능입니다. 실제 응용 프로그램에서는 대기 시간이 네트워크 연결, 저장 속도 등과 같은 외부 요인에 따라 달라지는 프로세스에 비동기 작업이 자주 사용됩니다. 다음은 비동기 작업의 몇 가지 예입니다.
JavaScript에서 비동기 작업은 일반적으로 함수를 사용하여 구현됩니다. 함수는 합계를 계산하는 추가 함수, 컴퓨터를 종료하는 종료 함수 등 특정 작업을 수행하는 코드 블록 집합입니다(그런 함수가 있을까요?).
비동기 함수를 정의하려면 함수 선언 시 async
키워드만 추가하면 되고 나머지는 일반 함수와 동일합니다.
예를 들어, 이메일을 비동기적으로 보내는 기능을 정의합니다.
<code class="language-javascript">async function kirimEmail(tujuan, judul, isi) { // 发送邮件 // ... }</code>
또는 화살표 기능을 사용하세요.
<code class="language-javascript">const kirimEmail = async (tujuan, judul, isi) => { // 发送邮件 // ... }</code>
위 함수가 호출되면 자동으로 비동기식으로 실행되므로 서로 기다리지 않습니다.
예:
<code class="language-javascript">kirimEmail('contoh1@email.com', 'Tes 1 Email', 'Halo. Ini saya lagi ngetes.'); kirimEmail('contoh2@email.com', 'Tes 2 Email', 'Halo. Ini saya lagi ngetes.'); kirimEmail('contoh3@email.com', 'Tes 3 Email', 'Halo. Ini saya lagi ngetes.');</code>
위의 예에서는 이메일을 보내는 모든 프로세스가 순차적으로 실행되지만 프로세스가 완료되기를 기다리지는 않습니다. 따라서 이전 프로세스가 완료되지 않은 상태에서 다음 프로세스가 시작되며 서로 차단되지 않습니다.
데이터를 가져와야 하거나 비동기 프로세스가 완료될 때까지 기다려야 하는 경우 함수를 호출할 때 await
키워드를 사용할 수 있습니다.
예:
<code class="language-javascript">await kirimEmail('contoh1@email.com', 'Tes 1 Email', 'Halo. Ini saya lagi ngetes.'); await kirimEmail('contoh2@email.com', 'Tes 2 Email', 'Halo. Ini saya lagi ngetes.'); await kirimEmail('contoh3@email.com', 'Tes 3 Email', 'Halo. Ini saya lagi ngetes.');</code>
이 예에서 각 프로세스는 이전 프로세스가 완료될 때까지 기다립니다. 이는 일반적으로 다음 프로세스를 위해 한 프로세스에서 데이터를 가져와야 할 때 발생하므로 필요한 데이터를 가져오기 전에 이전 프로세스가 완료될 때까지 기다려야 합니다.
Promise.all
을 사용하면 여러 비동기 함수를 동시에 호출하고 기다릴 수 있습니다.
Promise.all
을 사용하여 여러 비동기 함수를 호출하는 예는 다음과 같습니다.
<code class="language-javascript">await Promise.all([ kirimEmail('contoh1@email.com', 'Tes 1 Email', 'Halo. Ini saya lagi ngetes.'), kirimEmail('contoh2@email.com', 'Tes 2 Email', 'Halo. Ini saya lagi ngetes.'), kirimEmail('contoh3@email.com', 'Tes 3 Email', 'Halo. Ini saya lagi ngetes.'), ]);</code>
위의 예에서는 3번의 메일 발송 프로세스가 완료될 때까지 기다리며, 그 결과는 성공, 실패에 상관없이 배열 형태로 반환됩니다.
Promise.all
에는 다음과 같은 속성이 있습니다.
await
을 사용하는 경우에는 자세한 내용은 MDN의 Promise.all
문서를 참조하세요.
Promise.all
을 사용하면 매우 편리합니다. await
? 한 번만 작성하면 되며, 프로세스 중 하나에 오류가 발생하면 모든 프로세스를 중지하려는 경우에도 유용합니다. 그러나 한 프로세스가 실패하더라도 다른 프로세스를 계속 실행하려면 다음 기사에서 이에 대해 논의하겠습니다.
읽어주셔서 감사합니다. 상담을 원하시면 메시지를 남겨주세요. 친구를 사귀고 싶다면 알려주세요 ?
위 내용은 Promise.all() 활용의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!