func AfterBoth[T, S, R any]()

in after_both.go [11:25]


func AfterBoth[T, S, R any](ctx context.Context, tskT *Task[T], tskS *Task[S], next AfterBothFunc[T, S, R]) *Task[R] {
	return Start(ctx, func(fCtx context.Context) (R, error) {
		t, err := tskT.Result(fCtx)
		if err != nil {
			return *new(R), err
		}

		s, err := tskS.Result(fCtx)
		if err != nil {
			return *new(R), err
		}

		return next(fCtx, t, s)
	})
}