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