0

外部 API から JSON 配列をフェッチし、一度に配列の 1 つの要素を出力しようとしています。ただし、実装がどこかで失敗しているようです。配列ではなくエラーが発生しています

'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)
});
4

1 に答える 1

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'));
于 2016-03-23T14:46:47.547 に答える