Skip to content

nichoth/pull-combine-latest

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

41 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

pull combine latest Build Status

Combine the latest values from many streams. The algorithm waits until every stream has emitted a value, then emits a new array whenever one of the streams has more data.

install

$ npm install pull-combine-latest

example

var S = require('pull-stream')
var combineLatest = require('pull-combine-latest')

S(
    // pass an array of streams
    combineLatest([S.values([1,2,3]), S.values(['a','b','c'])]),
    S.log()
)

S(
    // or pass streams as arguments
    combineLatest(S.values([1,2,3]), S.values(['a','b','c'])),
    S.log()
)

/*
output:

    [1,'a']
    [2,'a']
    [2,'b']
    [3,'b']
    [3,'c']

*/


// new data is emitted as soon as it is received, so sync data will always
// be emitted before async data
S(
    combineLatest(S.values([1,2,3]), asyncValues(['a','b','c'])),
    S.log()
)
/*
    [1,'a']
    [2,'a']
    [3,'a']
    [3,'b']
    [3,'c']
*/


// object map
S(
    combineLatest({
        a: S.values([1,2,3]),
        b: S.values([1,2,3])
    }),
    S.log()
)
/*
    { a: 1, b: 1 }
    { a: 2, b: 1 }
    { a: 2, b: 2 }
    { a: 3, b: 2 }
    { a: 3, b: 3 }
*/

About

Combine the latest values from many pull streams

Resources

Stars

Watchers

Forks

Packages

No packages published