@tadd ちょっと書くと……
async / await
function main() {
const waiter = asyncF();
...
const needValue = await waiter();
}
↑ 素直に asyncF で生成した Promise の値が欲しくなったら await で待つ
goroutine
func main() {
receiver := make(chan val)
go func() {
receiver <- heavyLoad();
}()
select {
case needValue := <-receiver:
}
}
↑ チャンネル作ってそれを関数なり goroutine に渡して send してもらって recv の待ち合わせを書く、みたいなだるさ