Javascript 这个函数在做什么?

Javascript 这个函数在做什么?,javascript,coffeescript,Javascript,Coffeescript,我试图理解这是做什么的,以及为什么它在我使用的模块中是必要的。传入的响应来自http get 谢谢此函数处理通过HTTP接收的响应(类的实例) parseResponse = (response, cb) -> output = '' response.setEncoding('utf8') response.on 'data', (chunk) -> output += chunk response.on 'end', -> j = JSON.par

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


谢谢

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

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)
指示所需的传输编码(UTF-8)。传递给
数据
事件的块将以这种编码方式发送

response.setEncoding('utf-8')
设置用于处理数据块的回调。接收到的字符串的每个“块”都被追加到
输出
字符串变量

response.on 'data', (chunk) -> output += chunk
设置另一个对完全传输的数据起作用的回调

response.on 'end', ->
接收到的数据被假定为JSON并被解析为JSON。检索已解析数组的第一个元素

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

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

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

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)
指示所需的传输编码(UTF-8)。传递给
数据
事件的块将以这种编码方式发送

response.setEncoding('utf-8')
设置用于处理数据块的回调。接收到的字符串的每个“块”都被追加到
输出
字符串变量

response.on 'data', (chunk) -> output += chunk
设置另一个对完全传输的数据起作用的回调

response.on 'end', ->
接收到的数据被假定为JSON并被解析为JSON。检索已解析数组的第一个元素

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

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

你能发布JavaScript等价物吗?我根本不知道脚本语言,但我猜它读取UTF8编码数据块中的响应,完成后,使用生成的JSON字符串调用变量cb中传递的回调函数你能发布JavaScript等价物吗?我根本不知道脚本语言,但我猜它会读取UTF8编码数据块中的响应,完成后,调用在变量cb中传递的回调函数,并生成JSON字符串!究竟为什么需要这样做?在解析响应之前,它是什么形式的?它只是接收需要组合在一起的分块数据吗?在函数执行时,会出现HTTP响应。它设置事件回调,该回调将在数据流入时运行。我对HTTP/TCP了解不多,但我猜数据是以原始二进制块的形式输入的,设置所需的编码会告诉节点将其作为UTF-8字符串进行处理。您最后的断言是正确的。它逐个字符串块接收数据,并在
输出
变量中累加每个数据块。它做了一些额外的处理,然后将数据交给作为参数提供的回调。谢谢Hans!究竟为什么需要这样做?在解析响应之前,它是什么形式的?它只是接收需要组合在一起的分块数据吗?在函数执行时,会出现HTTP响应。它设置事件回调,该回调将在数据流入时运行。我对HTTP/TCP了解不多,但我猜数据是以原始二进制块的形式输入的,设置所需的编码会告诉节点将其作为UTF-8字符串进行处理。您最后的断言是正确的。它逐个字符串块接收数据,并在
输出
变量中累加每个数据块。它会做一些额外的处理,然后将数据交给作为参数提供的回调。