Pergunta

Seria muito útil para mim se você poderia me ajudar a corrigir esta função:

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

Eu gostaria de obter os resultados do retorno de chamada de modo que o textParseQuery a função pode retornar um valor.

Foi útil?

Solução 2

Eu descobri IcedCoffeeScript ajuda a agilizar o assíncrono de fluxo de controle com await e defer.Isso é o que eu tenho tentado fazer.A estrutura de código é como eu imaginei ele

# 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

Outras dicas

O ponto de chamada de retorno é assíncrona, a resposta vem em retorno, de modo que você precisa para lidar com o resto de execução de retorno de chamada (por exemplo, o console.log res para executar antes de seu retorno de chamada é chamada, já que é parte da mesma execução síncrona de sua chamada ajax).

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

        # proceed from here
        console.log companies
    $.get queryUrl, {}, callback

Nota adicional:a gordura seta é desnecessário, aqui, é usado para religar o que this refere-se, mas você não está fazendo referência a this em tudo em seu retorno de chamada.Se você está aprendendo a café, a maioria dos editores terá plugin/módulos rapidamente compilar o café para JS, então use-a para ver o que um determinado café de sintaxe compila para javascript (por exemplo, dê uma olhada na comparação entre o uso de -> e => quando você compilar o seu café)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top