我试图从外部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)
});
您可能得到的是大块数据,而不是完整的响应,这意味着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'));