4 ms·
Thanks for checking it out! The points you raised are why I wrote WHY, but I'll do my best to summarize the weaknesses of channels+goroutines that I believe th
by garlicnation 7y ago
Thanks for checking it out!
The points you raised are why I wrote WHY, but I'll do my best to summarize the weaknesses of channels+goroutines that I believe this covers:
- fan out, because channels don't support it
- error chaining between goroutines. The solution I've often seen here is an error channel and another way of cancelling workers. If an early promise returns an error, later promises won't execute and the early error will get returned on Wait()
- complex graphs of async operations that are only executed once
re: type safety: this library will make sure all your types line up before executing your functions. With generics/contracts it may be eventually possible to make it compile time safe as well.