0

Ich versuche, ein JSON-Array von einer externen API zu holen und dann ein Element des Arrays zu der Zeit zu emittieren. jedoch meine Implementierung irgendwo zu sein scheint versagt, erhalte ich Fehler anstelle von Arrayhighland.js holen Json-Array und transformieren im Strom der Werte

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

Antwort

1

Sie sind wahrscheinlich Stücke von Daten zu erhalten, anstatt der vollen Antwort Bedeutung JSON.parse versucht unvollständig JSON zu analysieren. Vielleicht versuchen Sie so etwas?

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

Super, das hat den Trick! – maephisto