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.Timer
package 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.016640301
After
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.Time
package 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.012449901
Last updated