1

http://foo.bar/overview次の方法で URLからJSON をフェッチします。

const request = request.get('http://foo.bar/overview');

オブジェクトの配列を含む JSON 応答で生成されます。

[
    {
        id: 1,
        narf: 'foo',
        poit: 'bar',
    },
    {
        id: 2,
        narf: 'fizz',
        poit: 'buzz',
    },
]

現在、配列の各オブジェクトを含むハイランド ストリームをセットアップしようとしています。それでも、そもそもストリーム全体のアプローチの逆効果と思われるリクエストの応答全体からしか構築できないようです。

私の最初の単純な解決策は、次の方法でビルドすることでした。

let body: [];
request.on('data', (chunk: any) => {
    body.push(chunk);
}).on('end', () => {
    const responseData = JSON.parse(Buffer.concat(body).toString());
    _(responseData) // now I have the stream
});

掘り下げてみると、ハイランドがリクエストオブジェクト自体からのストリームの設定をサポートしていることにも気付きました。

_(request).map((bufferedResponse: Buffer) => {
    const overview = <Overview[]> JSON.parse(bufferedResponse.toString()); // again this is the entire respone already
    return _(overview); // now I have the stream
});

メモリに保存されている応答全体を使用せずに、オンザフライでリモート JSON からオブジェクトの配列のストリームを作成するにはどうすればよいですか?

4

1 に答える 1