generator/promise golang 版
nodejs吧
全部回复
仅看楼主
level 8
> 刚有个小哥说generator promise跟async/await不能比
我也是呵呵地根据golang 的协程goroutine channel 等写了个go-co,名字取自tj 的 co
实例
import "github.com/magicdawn/go-co"
import 之后就有
co.Task
co.Await
co.Async
存在了
例如,查询数据库是耗时操作,包装成一个Task,跟nodejs里面包装成一个Promise 是一样的
func queryDb(sql string) co.Task {
return co.Async(func() interface{}{
// exec sql
})
}
这里co.Async 新开一个协程,
使用 res := co.Await(t) 等待这个协程,阻塞当前协程,可以理解为thread.join
2015年05月13日 08点05分 1
level 8
go get gitgub.com/magicdawn/go-co
你懂的
2015年05月13日 08点05分 2
level 8
go get github.com/magicdawn/go-co
你懂的
2015年05月13日 08点05分 3
level 8
golang 版本的这个因为golang 目前不支持范型,还不成大器。好好玩nodejs 喽[可爱]
2015年05月13日 08点05分 4
level 8
这个
co.Task 跟promise 地位一样
co.Async 跟 tj 的co 函数一样,创建一个Task , tj 的 co 是创建一个promise
co.Await 跟 yield 一样,只能说使用形式一样,各个语言协程并发实现不一样
2015年05月13日 08点05分 5
level 8
python/ES7 说是要加入async/await 关键字
elixir 之前在erlang conf 的时候说会从c# 那里borrow async/await
2015年05月13日 08点05分 6
level 8
现在造一门语言越来越难了!要照顾方方面面
2015年05月13日 08点05分 7
level 8
python 早就支持 generator 了,协程什么的也是有gevent 在搞。缩进无爱^ω^
2015年05月25日 14点05分 9
1