JSFiddle - React, Tailwind, and code Playground
by joplomacedo
JavaScript
function createMergedStreamsData( dataKeys ) {
let data = {};
let onStreamCb = () => {};
let isMissingData = true;
return {
onStream( cb ) {
onStreamCb = cb;
return {
cancel() {
onStreamCb = () => {};
}
}
},
send( dataFragment ) {
data = {
...data,
...dataFragment
};
console.log(data);
const d = dataKeys.findIndex( key => !(key in data) );
console.log(d);
isMissingData = isMissingData || dataKeys.findIndex( key => !(key in data) ) !== -1;
console.log('isisMissingData', isMissingData)
if ( !isMissingData ) {
onStreamCb(data);
}
}
}
}
const mergedStreams = createMergedStreamsData([
'a',
'b',
'c'
])
mergedStreams.onStream( data => {
console.log('data', data)
})
mergedStreams.send({
a: 3
})
mergedStreams.send({
b: 7
})
mergedStreams.send({
c: 9
})