Popularity
4.7
Stable
Activity
0.0
Stable
135
11
19

Programming language: Go
License: BSD 3-clause "New" or "Revised" License
Tags: Goroutines    
Latest version: v1.0.0

async alternatives and similar packages

Based on the "Goroutines" category.
Alternatively, view async alternatives based on common mentions on social networks and blogs.

Do you think we are missing an alternative of async or a related project?

Add another 'Goroutines' Package

README

Async

Build Status codecov Go Report Card GoDoc

Provides a safe way to execute functions asynchronously, recovering them in case of panic. It also provides an error stack aiming to facilitate fail causes discovery, and a simple way to control execution flow without WaitGroup.

Usage

var (
    user   User
    songs  []Songs
    photos []Photos
)

err := async.Run(ctx,
    func(ctx context.Context) error {
        user, err = user.Get(ctx, id)
        return err
    },
    func(ctx context.Context) error {
        songs, err = song.GetByUserID(ctx, id)
        return err
    },
    func(ctx context.Context) error {
        photos, err = photo.GetByUserID(ctx, id)
        return err
    },
)

if err != nil {
    log.Error(err)
}

You can also limit the number of asynchronous tasks

runner := async.NewRunner(tasks...).WithLimit(3)
if err := runner.Run(ctx); err != nil { 
    log.Error(e)
}