func Go(f func() error) error {
	ch := make(chan error)
	go func() {
		ch <- f()
	}()
	return <-ch
}
Go is a basic promise implementation: it wraps calls a function in a goroutine
and returns a channel which will later return the function's return value.
from beego/bee
package goutil
import (
	"github.com/gookit/goutil/jsonutil"
)