मैं यहाँ क्या गलत कर रहा हूं? मैं अपने कॉलबैक के लिए वसा तीर => का उपयोग कर रहा हूं, हालांकि जब कोड cb.onEndElement तक पहुंचता है और @returner को कॉल करता है तो मुझे एक शून्य ऑब्जेक्ट अपवाद मिलता है। तो @returner क्यों मौजूद नहीं है?कॉफीस्क्रिप्ट स्कोप मुद्दा
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
क्या मेरा उत्तर आपकी समस्या का समाधान करता है? – nicolaskruchten
हां, धन्यवाद। – Matthew