Asynchronous pada javascript

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

avatar tsapuma
@tsapuma

4 Kontribusi 0 Poin

Diperbarui 4 tahun yang lalu

Tanggapan

errorny apa? coba cek console

7 Jawaban:

ini gimana penyelesaiannya kak, aku juga dapet kasus kaya gitu ..

avatar pujilets
@pujilets

2 Kontribusi 0 Poin

Dipost 5 tahun yang lalu

require itu tidak bisa di jalanin di localhost.

avatar meatlover
@meatlover

22 Kontribusi 5 Poin

Dipost 5 tahun yang lalu

jadi solusinya gmna kak

avatar pujilets
@pujilets

2 Kontribusi 0 Poin

Dipost 5 tahun yang lalu

Dosen nya pasti ada kasih tutorial nya gimana jalanin program itu

avatar meatlover
@meatlover

22 Kontribusi 5 Poin

Dipost 5 tahun yang lalu

<pre> books.forEach(element =&gt; readBooks(10000, element, (callbackFn) =&gt; { console.log(callbackFn) })) </pre>

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.

<pre> '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 </pre>

avatar korlin
@korlin

3 Kontribusi 1 Poin

Dipost 5 tahun yang lalu

<div>Bisa dicoba dibuat looping seperti ini:<br><br><figure data-trix-attachment="{&quot;contentType&quot;:&quot;image/png&quot;,&quot;filename&quot;:&quot;image.png&quot;,&quot;filesize&quot;:85197,&quot;height&quot;:770,&quot;url&quot;:&quot;https://i.ibb.co/ZgWZfQt/image.png&quot;,&quot;width&quot;:930}" data-trix-content-type="image/png" data-trix-attributes="{&quot;presentation&quot;:&quot;gallery&quot;}" class="attachment attachment--preview attachment--png"><img src="https://i.ibb.co/ZgWZfQt/image.png" width="930" height="770"><figcaption class="attachment__caption"><span class="attachment__name">image.png</span></figcaption></figure><br><br></div>

avatar muhammadsyahrul_google
@muhammadsyahrul_google

2 Kontribusi 2 Poin

Dipost 4 tahun yang lalu

Tanggapan

maaf pak itu books.length apa ya maksudnya?

dan sisa sama sisaWaktu itu sama atau tidak pak?

<div>outputnya nanti seperti ini:<br><br><figure data-trix-attachment="{&quot;contentType&quot;:&quot;image/png&quot;,&quot;filename&quot;:&quot;image.png&quot;,&quot;filesize&quot;:26369,&quot;height&quot;:172,&quot;url&quot;:&quot;https://i.ibb.co/4FVm36Z/image.png&quot;,&quot;width&quot;:734}" data-trix-content-type="image/png" data-trix-attributes="{&quot;presentation&quot;:&quot;gallery&quot;}" class="attachment attachment--preview attachment--png"><img src="https://i.ibb.co/4FVm36Z/image.png" width="734" height="172"><figcaption class="attachment__caption"><span class="attachment__name">image.png</span></figcaption></figure></div>

avatar muhammadsyahrul_google
@muhammadsyahrul_google

2 Kontribusi 2 Poin

Dipost 4 tahun yang lalu

Login untuk ikut Jawaban