Latihan 1 dari materi Testing Kode Asinkron di Testing — praktek dengan editor kode interaktif, test case otomatis, dan hint terpandu. Langsung jalan di browser.
Lengkapi dua function di kode awal. Baris terakhir, testAmbilData().then(p => console.log(p));, sudah ada, biarkan begitu.
ambilData(url) mengembalikan new Promise((resolve, reject) => { ... }) dengan tiga cabang:
Kalau ketiganya benar, testAmbilData() mengembalikan 3 dan console mencetak 3. ambilData juga dicek langsung dengan "/users", "/error" dan "/kosong", jadi hasilnya harus keluar dari cabang-cabangnya, bukan angka yang diketik.
Hint
ambilData memutuskan hasilnya dari isi url: resolve kalau berhasil, reject kalau gagal. testAmbilData menunggu tiap Promise dengan await dan menghitung yang benar.
Di dalam new Promise pakai if (url.includes("users")) ... else if (url.includes("error")) ... else .... Di testAmbilData, kasus error dibungkus try { await ambilData("/error") } catch (e) { ... } karena await pada Promise yang ditolak melempar error.
try { await ambilData("/error"); } catch (e) { if (e.message === "Gagal mengambil data") passed++; } lalu const hasil = await ambilData("/users"); if (hasil.data.length === 2) passed++; dan di akhir return passed;
</>{ }.css=>#idfn()
Versi baru
HyperSheets
bagian dari BelajarWeb.dev
0%
Membuka gerbang…
HyperSheets
Memperbarui Aplikasi
Versi baru tersedia. Halaman akan dimuat ulang otomatis...