Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type DeferredPromise ¶ added in v1.1.0
type DeferredPromise[T any] interface { Promise[T] // Run causes the DeferredPromise to call the passed Func, // thus starting the Promise lifecycle. // Run is multiprocess-safe: after the first call, subsequent calls // will do nothing. Run(Func[T]) // Started returns whether or not Run has been called for // this DeferredPromise. Started() bool }
DeferredPromise is a Promise which isn't initialized with a Func; instead, a DeferredPromise begins its lifecycle when Run is called.
func NewDeferredPromise ¶ added in v1.1.0
func NewDeferredPromise[T any]() DeferredPromise[T]
NewDeferredPromise returns a DeferredPromise.
type Func ¶
type Func[T any] func(ResolveFunc[T], RejectFunc)
Func represents a wrapper function, to be wrapped around functions which are being called by a Promise.
type Promise ¶
type Promise[T any] interface { // Resolve blocks until this Promise's execution finishes and // a Result is returned. Resolve() Result[T] // ResolveAsync returns a chan(Result) with a buffer size of 1, which // can be utilized in any way desired. ResolveAsync() <-chan Result[T] // Fulfilled returns true if this Promise resolved successfully. // More specifically, it returns true if the result of Err is nil; // the value returned by Result _can_ still be nil even if Fulfilled returns true. Fulfilled() bool // Rejected returns true if this Promise did not resolve successfully - specifically, // if the return result of Err is not nil. // Rejected will return false if the result of both Err and Result are nil. Rejected() bool }
Promise provides an interface for types which fetch data or calculate results asyncronously, and can then wait for the result to return.
func NewPromise ¶
NewPromise returns a Promise. Upon instantiation, the passed Func is called in a goroutine which stores the returned data/error.
type RejectFunc ¶ added in v1.3.0
type RejectFunc func(error)
RejectFunc is a function passed to functions called by Promise, to be called if they return an error.
type ResolveFunc ¶ added in v1.3.0
type ResolveFunc[T any] func(T)
ResolveFunc is a function passed to functions called by Promise, to be called by those functions if they successfully return a result.