Context WithCancel dan Context Done

Context With Cancel

Context WithCancel digunakan untuk mengakhiri context.

package main

import (
	"context"
	"fmt"
	"time"
)

func main() {
	ctx, cancel := context.WithCancel(context.Background())
	defer cancel()

	go func() {
		fmt.Println("before cancel")
		time.Sleep(2 * time.Second)
		cancel()
		fmt.Println("after cancel")
	}()

	select {
	case <-time.After(5 * time.Second):
		fmt.Println("more than 5 second")
	case <-ctx.Done():
		fmt.Println(ctx.Err())
	}
}

Context Done

Context Done digunakan untuk cek apakah context sudah selesai atau belum. Contoh code penerapan context done seperti code dibawah ini.

Last updated