highland.js 获取 json 数组并转换为值流
highland.js fetch json array and transform in stream of values
我正在尝试从外部 API 获取一个 JSON 数组,然后同时发出该数组的一个元素。
但是我的实现似乎在某处失败了,我收到错误而不是 array
'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'));
我正在尝试从外部 API 获取一个 JSON 数组,然后同时发出该数组的一个元素。 但是我的实现似乎在某处失败了,我收到错误而不是 array
'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'));