这个功能在做什么?

时间:2011-07-10 04:53:49

标签: javascript coffeescript

parseResponse = (response, cb) -> 
  output = ''
  response.setEncoding('utf8')
  response.on 'data', (chunk) -> output += chunk
  response.on 'end', ->
    j = JSON.parse(output)
    result = j.results[0]
    cb(result)

我正在尝试理解这是做什么以及为什么在我正在使用的模块中有必要。传入的响应来自http get。

由于

1 个答案:

答案 0 :(得分:4)

此函数处理通过HTTP接收的响应(ClientResponse类的实例)。

response.setEncoding('utf-8')

表示所需的传输编码(UTF-8)。传递给data事件的块将以此编码方式发送。

response.on 'data', (chunk) -> output += chunk

设置回调以处理数据块。收到的字符串的每个“块”都附加到output字符串变量。

response.on 'end', ->

设置另一个回调,它对完全传输的数据起作用。

j = JSON.parse(output)
result = j.results[0]

假设接收的数据是JSON并且如此解析。检索解析数组的第一个元素。

cb(result)

使用JSON对象中的数据调用最初提供给函数的回调cb