Tengo un código que cuando consolas.Lo registras, se parece a la imagen a continuación:
El código que estoy ejecutando es el siguiente:
onClick={() => { const stream = fetch( 'https://lichess.org/api/games/user/neio', { headers: { Accept: 'application/x-ndjson' } } ); const onMessage = obj => { console.log('test', obj); }; const onComplete = () => console.log('The stream has completed'); stream.then(readStream(onMessage)).then(onComplete); }} export const readStream = processLine => response => { const stream = response.body.getReader(); const matcher = /\r?\n/; const decoder = new TextDecoder(); let buf = ''; const loop = () => stream.read().then(({ done, value }) => { if (done) { if (buf.length > 0) processLine(JSON.parse(buf)); } else { const chunk = decoder.decode(value, { stream: true, }); buf += chunk; const parts = buf.split(matcher); buf = parts.pop(); for (const i of parts) processLine(JSON.parse(i)); return loop(); } }); return loop(); }; export default readStream;Lo que intento hacer es crear un objeto principal que contenga todas estas filas individuales de datos.
Soy nuevo en promesas y recuperación, etc. Por lo tanto, actualmente, no tengo idea de cómo construir este objeto principal que contiene cada fila individual.
¿Alguna sugerencia?
¿No puedes tener una matriz global y agregarle elementos como:
var arrCollection = []; ... const onMessage = obj => { arrCollection.push(obj); };Puede tener un objeto con esos elementos haciendo como:
var objCollection = { items: arrCollection };