javascript - 这个函数是做什么的?

标签 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。

谢谢

最佳答案

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

response.setEncoding('utf-8')

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

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

设置用于处理数据 block 的回调。接收到的字符串的每个“ block ”都会附加到output字符串变量中。

response.on 'end', ->

设置另一个回调,该回调作用于完全传输的数据。

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

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

cb(result)

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

关于javascript - 这个函数是做什么的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6639251/

相关文章:

javascript - 我是否在此字符限制计数器中实现了正确的 if 语句?

javascript - 使用 Ajax.InPlaceCollectionEditor 动态更新自动选择值选项

javascript - Vue未加载数据

javascript - CoffeeScript:使用 lodash(_ .js) 将 List 的 List 合并为单个 List

coffeescript - coffeescript 中的多个构造函数

javascript - Node Redis 命令返回值 : Hubot and Coffeescript

javascript - JS Fetch API - 如果默认情况下 fetch 不会从服务器发送或接收任何 cookie,我什么时候应该使用值为 "omit"的凭据选项?

javascript - React-testing-Library with Jest 无法解析 CRACO 别名

javascript - 使用jquery查找div的索引

javascript - 为什么在 Coffeescript 中创建 AngularJS Controller 时使用 @ 符号?