add Future.Then

This commit is contained in:
Li Jie
2024-09-08 20:27:05 +08:00
parent cf53f3a347
commit 566d5ef96f
9 changed files with 56 additions and 32 deletions

View File

@@ -34,7 +34,7 @@ func Race[T1 any](futures ...Future[T1]) Future[T1] {
ch := make(chan T1)
for _, future := range futures {
future := future
future(func(v T1) {
future.Then(func(v T1) {
defer func() {
// Avoid panic when the channel is closed.
_ = recover()
@@ -56,7 +56,7 @@ func All[T1 any](futures ...Future[T1]) Future[[]T1] {
wg.Add(n)
for i, future := range futures {
i := i
future(func(v T1) {
future.Then(func(v T1) {
results[i] = v
wg.Done()
})