Skip to content

Latest commit

 

History

History
30 lines (23 loc) · 901 Bytes

9-Asynchronous-CN.md

File metadata and controls

30 lines (23 loc) · 901 Bytes

← 并发 | 异步调用(English) | 首页 →


异步调用

发起异步调用

Alibaba Cloud SDK for Go 支持两种方式的异步调用:

  1. 使用channel作为返回值

    responseChannel, errChannel := client.FooWithChan(request)
    
    // this will block
    response := <-responseChannel
    err = <-errChannel
  2. 使用 callback 控制回调

    blocker := client.FooWithCallback(request, func(response *FooResponse, err error) {
        // handle the response and err
    })
    
    // blocker 为(chan int),用于控制同步,返回1为成功,0为失败
    // 在<-blocker返回失败时,err依然会被传入的callback处理
    result := <-blocker

← 并发 | 异步调用(English) | 首页 →