¿Qué estoy haciendo mal aquí? Estoy usando las flechas gordas => para mis devoluciones de llamada, sin embargo, cuando el código llega a cb.onEndElement y llama a @returner obtengo una excepción de objeto nulo. Entonces, ¿por qué no existe @returner?Problema de alcance de CoffeeScript
class Parser
constructor:() ->
@returner = (data) ->
searchParser: new xml.SaxParser (cb) =>
cb.onStartElementNS (elem, attrs, prefix, url, ns) =>
if elem is "results" then @results = []
else if elem is "title" then @curr = "title"
else @curr = "none"
cb.onCdata (cdata) =>
if @curr is "title" then @book.title = cdata
cb.onEndElementNS (elem, prefix, url) =>
@results.push @book if elem is "book"
cb.onEndDocument =>
@returner @results
search: (str, callback) ->
@returner = callback
@searchParser.parseString str
p = new Parser
p.search "somexml", (data) ->
console.log JSON.stringify data
¿Mi respuesta solucionó tu problema? – nicolaskruchten
Sí, gracias. – Matthew