Mengambil Susunan URL dengan Promise.all
Untuk mendapatkan semula tatasusunan data teks daripada set URL, menggunakan Promise.all adalah pendekatan yang sesuai. Begini cara untuk melaksanakan tugas ini dengan berkesan:
Andaikan anda mempunyai tatasusunan rentetan URL:
<code class="js">var urls = ['1.txt', '2.txt', '3.txt']; // Text files containing "one", "two", "three"</code>
Output yang diingini ialah tatasusunan kandungan teks:
<code class="js">var text = ['one', 'two', 'three'];</code>
Menggunakan Promise.all membolehkan anda merantai berbilang operasi tak segerak. Dalam kes ini, ia boleh digunakan untuk mengambil setiap URL dahulu dan kemudian mengekstrak teks daripada setiap respons:
<code class="js">Promise.all(urls.map(url => fetch(url))) .then(responses => Promise.all(responses.map(res => res.text())) ) .then(texts => { // ... });</code>
Dalam kod di atas, Promise.all digunakan dua kali: sekali untuk memulakan pengambilan semua URL, dan kali kedua untuk mendapatkan kandungan teks daripada setiap respons.
Pendekatan alternatif, menggabungkan kedua-dua operasi menjadi satu rantai Promise.all, boleh dicapai seperti berikut:
<code class="js">Promise.all(urls.map(url => fetch(url) .then(resp => resp.text()) )) .then(texts => { // ... });</code>
Selain itu, anda boleh memudahkan lagi kod ini menggunakan async/wait:
<code class="js">const texts = await Promise.all(urls.map(async url => { const resp = await fetch(url); return resp.text(); }));</code>
Kedua-dua pendekatan ini menggunakan Promise.all dengan berkesan untuk mencapai hasil yang diingini dengan mengambil tatasusunan URL dan mengekstrak kandungan teks yang berkaitan.
Atas ialah kandungan terperinci Bagaimana untuk Mengambil dan Menghuraikan Data Teks daripada Susunan URL dengan Promise.all?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!