Pregunta

Sería muy útil para mí si usted me podría ayudar a arreglar esta función:

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

Me gustaría obtener los resultados a partir de la devolución de llamada para que el textParseQuery la función puede devolver un valor.

¿Fue útil?

Solución 2

He descubierto IcedCoffeeScript ayuda a agilizar el asíncrona de control de flujo con await y defer.Esto es lo que he tratado de lograr.La estructura del código es como lo de la foto es

# 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

Otros consejos

El punto de una devolución de llamada es asincrónica, su respuesta viene en la devolución de llamada, por lo que necesita para manejar el resto de la ejecución de la devolución de llamada (por ejemplo, la console.log res se va a ejecutar antes de su devolución de llamada, ya que es parte de la misma de ejecución sincrónico de su llamada 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:la grasa de la flecha es innecesario aquí, se utiliza para volver a enlazar lo que this se refiere, pero que no son de referencia this en su devolución de llamada.Si estás aprendiendo el café, la mayoría de los editores se han plugin/módulos para compilar rápidamente café de JS, así que usa eso para ver lo que un determinado café sintaxis compila en JS (por ejemplo, echar un vistazo a la diferencia entre el uso de -> y => cuando se compila el café)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top