1[← 并发](8-Concurrent-CN.md) | 异步调用[(English)](9-Asynchronous-EN.md) | [包管理 →](10-Package-Management-CN.md) 2*** 3## 异步调用 4 5### 发起异步调用 6Alibaba Cloud SDK for Go 支持两种方式的异步调用: 7 81. 使用channel作为返回值 9 ```go 10 responseChannel, errChannel := client.FooWithChan(request) 11 12 // this will block 13 response := <-responseChannel 14 err = <-errChannel 15 ``` 16 172. 使用 callback 控制回调 18 19 ```go 20 blocker := client.FooWithCallback(request, func(response *FooResponse, err error) { 21 // handle the response and err 22 }) 23 24 // blocker 为(chan int),用于控制同步,返回1为成功,0为失败 25 // 在<-blocker返回失败时,err依然会被传入的callback处理 26 result := <-blocker 27 ``` 28 29*** 30[← 并发](8-Concurrent-CN.md) | 异步调用[(English)](9-Asynchronous-EN.md) | [包管理 →](10-Package-Management-CN.md)