Skip to content

Misuse of resolve/reject causes "close of closed channel" panic #17

Open
@yoavsv

Description

Hello,

If I run:

mo.NewFuture(func(resolve func(struct{}), reject func(error)) {
	resolve(struct{}{})
	reject(errors.New("oh no..."))
})

I get panic: close of closed channel.

This makes me write defensive code (e.g. return after each call to reject / resolve).
I would suggest to recover from panics and reflect it as an error as part of Result[T]'s error.

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions