【问题标题】:highland.js fetch json array and transform in stream of valueshighland.js 获取 json 数组并转换为值流
【发布时间】:2023-03-28 10:35:01
【问题描述】:

我正在尝试从外部 API 获取 JSON 数组,然后同时发出该数组的一个元素。 但是我的实现似乎在某个地方失败了,我得到的是错误而不是数组

'use strict';

const request = require('request-promise'),
    H = require('highland');

H(request('http://jsonplaceholder.typicode.com/users'))
  .map(x => x.toString('utf8'))
  .tap((data) => {
      let acc = [];

      data = JSON.parse(data);
      data.forEach((entry) => {
          acc.push(entry);
      });
      return H(acc);
  })
  .each(user => console.log(user.id))// would expect that this logs 1,2,3,4
  .done(data => {
    console.log(data)
});

【问题讨论】:

    标签: javascript node.js stream reactive-programming highland.js


    【解决方案1】:

    您可能得到的是数据块而不是完整的响应,这意味着 JSON.parse 正在尝试解析不完整的 JSON。也许试试这样的?

    H(request('http://jsonplaceholder.typicode.com/users'))
      .collect()
      .map(Buffer.concat)
      .flatMap(x => JSON.parse(x.toString('utf8')))
      .each(user => console.log(user.id))
      .done(data => console.log('DONE'));
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-21
      • 1970-01-01
      • 2017-09-11
      • 2021-08-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多