Callback 从jquery get回调函数返回值

Callback 从jquery get回调函数返回值,callback,coffeescript,iced-coffeescript,Callback,Coffeescript,Iced Coffeescript,如果您能帮助我修复此功能,将对我非常有用: textParseQuery = (txtSnippet) -> queryUrl = "http://localhost:8083/txtParse/#{txtSnippet}" console.log queryUrl callback = (response) => parsed = $.parseJSON response companies = parsed.map

如果您能帮助我修复此功能,将对我非常有用:

textParseQuery = (txtSnippet) ->    
    queryUrl = "http://localhost:8083/txtParse/#{txtSnippet}"
    console.log queryUrl
    callback = (response) => 
        parsed = $.parseJSON response
        companies = parsed.map (obj) -> new Company(obj.name, obj.addr)
        companies
    res = $.get queryUrl, {}, callback
    console.log res

我想从回调中获取结果,以便
textParseQuery
函数可以返回一个值。

回调的要点是它是异步的,您的响应来自回调,因此您需要处理回调的其余执行(例如,
console.log res
将在调用回调之前执行,因为它是ajax调用同步执行的一部分)

附加说明:此处不需要胖箭头,它用于重新绑定此引用的内容,但您在回调中根本没有引用此。如果您正在学习coffee,大多数编辑器都会有插件/模块来快速将coffee编译为JS,因此使用它可以查看给定的coffee语法在JS中编译成什么(例如,查看编译咖啡时使用
->
=>
之间的区别)

我发现
等待
延迟
有助于简化异步控制流。这是我尝试实现的。代码结构就是我所描绘的

# Search for 'keyword' on twitter, then callback 'cb'
# with the results found.
search = (keyword, cb) ->
  host = "http://search.twitter.com/"
  url = "#{host}/search.json?q=#{keyword}&callback=?"
  await $.getJSON url, defer json
  cb json.results

我想用惯用的coffeescript代码(使用胖箭头')=>')得到一个答案你的意思是你不知道如何将JS转换为CS和CS?那么使用JS。将JS转换为coffeescript可能意味着不使用后者的特殊功能。当我试图学习coffeescript时,看看这种语言与JavaScript相比有什么不同会很有用。回调或承诺方面没有区别。CS只添加了it’这是一个装饰层,你必须了解它背后的工作原理。谢谢。在IcedCoffeeScript的帮助下,我确实按照我的想法组织了代码
# Search for 'keyword' on twitter, then callback 'cb'
# with the results found.
search = (keyword, cb) ->
  host = "http://search.twitter.com/"
  url = "#{host}/search.json?q=#{keyword}&callback=?"
  await $.getJSON url, defer json
  cb json.results