go-co
coroutine , async/await for golang
Goals
to simulate
- yield/Promise in node.js, co
- async/await/Task in C#
checkout blog http://magicdawn.ml/2015/01/10/generator-and-promise/
Install
with glide
$ glide get github.com/magicdawn/go-co
API
co
import "github.com/magicdawn/go-co"
-
co.Task : similar to Task in .NET,stands for a samll piece of work
-
co.Await: await a Task
result,err := co.Await(task)
-
co.Async: make a Task
func sleep() *co.Task{ return co.Async(func() interface{}{ time.sleep(time.Seconds * 10) return nil }) }
here is a Task will need 10 seconds
coutil
coutil.Each
: likePromise.each
coutil.Map
: likePromise.map
with concurrency support
more checkout demo/ directory
CHANGELOG
License
the MIT license ([email protected])