add Future.Then
This commit is contained in:
@@ -53,7 +53,7 @@ func Race[T1 any](futures ...Future[T1]) Future[T1] {
|
||||
return Async(func(resolve func(T1)) {
|
||||
done := atomic.Bool{}
|
||||
for _, future := range futures {
|
||||
future(func(v T1) {
|
||||
future.Then(func(v T1) {
|
||||
if !done.Swap(true) {
|
||||
// Just resolve the first one.
|
||||
resolve(v)
|
||||
@@ -70,7 +70,7 @@ func All[T1 any](futures ...Future[T1]) Future[[]T1] {
|
||||
var done uint32
|
||||
for i, future := range futures {
|
||||
i := i
|
||||
future(func(v T1) {
|
||||
future.Then(func(v T1) {
|
||||
results[i] = v
|
||||
if atomic.AddUint32(&done, 1) == uint32(n) {
|
||||
// All done.
|
||||
|
||||
Reference in New Issue
Block a user