Timer & After
Timer
Timer adalah representasi waktu satu kejadian
Ketika waktu timer sudah expire, maka event akan dikirim ke dalam channel Untuk membuat Timer kita bisa menggunakan fungsi time.NewTimer(duration).
Fungsi time.NewTimer() mengembalikan struct *time.Timer yang memiliki property C yang bertipe channel.
func time.NewTimer(d time.Duration) *time.Timerpackage main
import (
"fmt"
"time"
)
func main() {
timer := time.NewTimer(5 * time.Second)
fmt.Println(time.Now())
timeTimer := <-timer.C
fmt.Println(timeTimer)
}2023-03-28 11:25:07.7328437 +0700 +07 m=+0.002623201
2023-03-28 11:25:12.7468608 +0700 +07 m=+5.016640301After
Kadang kita hanya butuh channel Timer saja, tidak membutuhkan data Timer -> bisa menggunakan function time.After(duration)
func time.After(d time.Duration) <-chan time.Timepackage main
import (
"fmt"
"time"
)
func main() {
timer := time.After(1 * time.Second)
fmt.Println(time.Now())
timeTimer := <-timer
fmt.Println(timeTimer)
}2023-03-28 11:33:45.2167092 +0700 +07 m=+0.002684001
2023-03-28 11:33:46.2264751 +0700 +07 m=+1.012449901Last updated