go-promise-util
promise util for go

Install
$ go get gopkg.in/magicdawn/go-promise-util
API
package name = putil
use
putil.Map()
putil.Async()
putil.AsyncFactory()
Map
Map(
items interface{}[],
fn func(item interface{}, index int, items []interface{}) *promise.Promise,
concurrency int
) *promise.Promise
like node.js promise.map / async.parallelLimit
Async & AsyncFactory
sleepUseNewPromise := func(sec int) *promise.Promise {
return promise.New(func(resolve func(interface{}), reject func(error)) {
time.Sleep(time.Second * time.Duration(sec))
resolve(sec * sec)
})
}
sleepUseAsync := func(sec int) *promise.Promise {
return promiseUtil.Async(func() interface{} {
time.Sleep(time.Second * time.Duration(sec))
return sec
})
}
sleepUseAsyncFactory := promiseUtil.AsyncFactory(func(args ...interface{}) interface{} {
sec := args[0].(int)
time.Sleep(time.Second * time.Duration(sec))
return sec
})
Changelog
CHANGELOG.md
License
the MIT License http://magicdawn.mit-license.org