Postingan lainnya
Kelas Premium!
Belajar Javascript untuk website
Gunakan kupon "mulaijs" untuk diskon 75 ribu!
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
Tanggapan
errorny apa? coba cek console
7 Jawaban:
ini gimana penyelesaiannya kak, aku juga dapet kasus kaya gitu ..
require itu tidak bisa di jalanin di localhost.
Dosen nya pasti ada kasih tutorial nya gimana jalanin program itu
<pre> books.forEach(element => readBooks(10000, element, (callbackFn) => { 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:
- forEach akan iterate semua element di dalam array.
- Di setiap element, kita akan panggil Fn readBooks.
- 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>
<div>Bisa dicoba dibuat looping seperti ini:<br><br><figure data-trix-attachment="{"contentType":"image/png","filename":"image.png","filesize":85197,"height":770,"url":"https://i.ibb.co/ZgWZfQt/image.png","width":930}" data-trix-content-type="image/png" data-trix-attributes="{"presentation":"gallery"}" 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>
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="{"contentType":"image/png","filename":"image.png","filesize":26369,"height":172,"url":"https://i.ibb.co/4FVm36Z/image.png","width":734}" data-trix-content-type="image/png" data-trix-attributes="{"presentation":"gallery"}" 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>