2024-08-04 09:54:34 +08:00
|
|
|
package main
|
|
|
|
|
|
2024-08-05 20:21:11 +08:00
|
|
|
import (
|
|
|
|
|
"fmt"
|
|
|
|
|
|
|
|
|
|
"github.com/goplus/llgo/x/async"
|
|
|
|
|
)
|
2024-08-04 09:54:34 +08:00
|
|
|
|
|
|
|
|
func GenInts() (co *async.Promise[int]) {
|
2024-08-05 20:21:11 +08:00
|
|
|
println("gen: 1")
|
2024-08-04 09:54:34 +08:00
|
|
|
co.Yield(1)
|
2024-08-05 20:21:11 +08:00
|
|
|
println("gen: 2")
|
2024-08-04 09:54:34 +08:00
|
|
|
co.Yield(2)
|
2024-08-05 20:21:11 +08:00
|
|
|
println("gen: 3")
|
2024-08-04 09:54:34 +08:00
|
|
|
co.Yield(3)
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func main() {
|
|
|
|
|
co := GenInts()
|
|
|
|
|
for !co.Done() {
|
2024-08-05 20:21:11 +08:00
|
|
|
fmt.Printf("got: %v\n", co.Value())
|
|
|
|
|
co.Next()
|
2024-08-04 09:54:34 +08:00
|
|
|
}
|
2024-08-05 20:21:11 +08:00
|
|
|
fmt.Printf("done\n")
|
2024-08-04 09:54:34 +08:00
|
|
|
}
|