Daftar dan Belajar Sekarang!

Asynchronous pada javascript

foto tsapuma
4 Kontribusi 0 Coto
9 bulan yang lalu
Ada yang bisa bantu cara penulisannya kodenya? udah coba buat tapi hasilnya tidak keluar(saya masih agak bingung di materi ini) jadi disini itu diperintahkan untuk membuat callback, nah file callback.js dan index.js itu disimpan dalam satu folder. untuk hasil outputnya pakai yang index.js
// di callback.js
function readBooks(time, book, callback ) {
    console.log(`saya membaca ${book.name}`)
    setTimeout(function(){
        let sisaWaktu = 0
        if(time > book.timeSpent) {
            sisaWaktu = time - book.timeSpent
            console.log(`saya sudah membaca ${book.name}, sisa waktu saya ${sisaWaktu}`)
            callback(sisaWaktu) //menjalankan function callback
        } else {
            console.log('waktu saya habis')
            callback(time)
        }   
    }, book.timeSpent)
}

module.exports = readBooks
________________________________________________________
// di index.js
var readBooks = require('./callback.js')

var books = [
    {name: 'LOTR', timeSpent: 3000}, 
    {name: 'Fidas', timeSpent: 2000}, 
    {name: 'Kalkulus', timeSpent: 4000}
]

// Tulis code untuk memanggil function readBooks di sini

Jawaban
foto pujilets
2 Kontribusi 0 Coto
7 bulan yang lalu
ini gimana penyelesaiannya kak, aku juga dapet kasus kaya gitu ..

foto meatlover
22 Kontribusi 5 Coto
7 bulan yang lalu
require itu tidak bisa di jalanin di localhost.

foto pujilets
2 Kontribusi 0 Coto
7 bulan yang lalu
jadi solusinya gmna kak

foto meatlover
22 Kontribusi 5 Coto
7 bulan yang lalu
Dosen nya pasti ada kasih tutorial nya gimana jalanin program itu

foto korlin
3 Kontribusi 1 Coto
7 bulan yang lalu
books.forEach(element => readBooks(10000, element, (callbackFn) => {
  console.log(callbackFn)
}))
Books adalah array of objects. Kita bisa iterate array tersebut menggunakan map/forEach. Map akan me-return sebuah array baru, kita tidak butuh array baru, makanya kita hanya perlu menggunakan forEach. Intinya, code tersebut: 1. forEach akan iterate semua element di dalam array. 2. Di setiap element, kita akan panggil Fn readBooks. 3. Parameter pertama kita masukan waktu, di case saya saya masukan 10s. Kedua, kita masukan element yang sedang aktif. Ketiga saya membuat callbackFn yang berfungsi untuk console.log. Hasilnya di console akan jadi seperti ini.
'saya membaca LOTR'
'saya membaca Fidas'
'saya membaca Kalkulus'
'saya sudah membaca Fidas, sisa waktu saya 8000'
8000
'saya sudah membaca LOTR, sisa waktu saya 7000'
7000
'saya sudah membaca Kalkulus, sisa waktu saya 6000'
6000


Login untuk diksusi di forum sekolah koding