note..spa
1. example based on channelcode
func shouldAbort(timeout time.Duration, ch chan<- bool) { time.Sleep(timeout) ch <- true } func TestMethod() bool { ch := make(chan bool, 1) go shouldAbort(time.Second, ch) time.AfterFunc(2*time.Second, func() { fmt.Println("???") ch <- false }) return <-ch }