【问题标题】:Return value from HTTPResponse closure Grails HTTPBuilder to outer method从 HTTPResponse 闭包 Grails HTTPBuilder 向外部方法返回值
【发布时间】:2013-08-23 21:43:53
【问题描述】:

我有一些这样的代码

def lookupTickets() {
    User currentUser = webAuthService.currentUser()
    def http = new HTTPBuilder(zdURL)
    http.auth.basic("${zdUser}/token", zdApiKey)
    http.get(path: "/api/v2/users/search.json", 
             query: [query: currentUser.emailAddress], 
             requestContentType: ContentType.JSON, { resp, json ->
              println "Response status: ${resp.statusLine}"
                  def zenDeskUserId = json?.users[0]?.id
    })
    return MYRESULT
}

def zenDeskUserId = json?.users[0]?.id 行给出了我希望返回浏览器的结果。

当它只在内部闭包的范围内时,如何在外部方法中返回这个值?

【问题讨论】:

    标签: grails closures grails-controller httpbuilder


    【解决方案1】:

    你认为这行不通吗?

    def lookupTickets() {
        def zenDeskUserId
    
        User currentUser = webAuthService.currentUser()
        def http = new HTTPBuilder(zdURL)
        http.auth.basic("${zdUser}/token", zdApiKey)
        http.get(path: "/api/v2/users/search.json", 
                 query: [query: currentUser.emailAddress], 
                 requestContentType: ContentType.JSON, { resp, json ->
    
                     println "Response status: ${resp.statusLine}"
                     zenDeskUserId = json?.users[0]?.id
        })
        return zenDeskUserId
    }
    

    【讨论】:

    • 我在想回调/关闭会异步发生。这行得通。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-16
    • 2012-08-22
    • 2019-01-02
    • 1970-01-01
    • 2012-03-07
    • 1970-01-01
    相关资源
    最近更新 更多