2016-03-22 14 views
0

JSON配列を外部APIからフェッチし、その時点で配列の1つの要素を放出しようとしています。 私の実装がどこかに障害が発生しているようだが、私はあなたがおそらくかなりJSON.parseが不完全なJSONを解析しようとしているという意味のフル応答よりも、データのチャンクを取得しているエラーの代わりに、配列highland.js 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) 
}); 

答えて

1

を取得しています。おそらくこのようなものを試してみてください。

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')); 
+0

これは素晴らしいことでした。 – maephisto

関連する問題