Skip welcome & menu and move to editor
Welcome to JS Bin
Load cached copy from
 
<!DOCTYPE html>
<html>
<head>
<script src="https://npmcdn.com/xstream@1.1.0/dist/xstream.min.js"></script>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title>JS Bin</title>
</head>
<body>
</body>
</html>
 
var xs = xstream.default;
var streamA = xs.periodic(100).take(4).map(i => [
  {ts: 1, value: 20}, 
  {ts: 2, value: 10}, 
  {ts: 3, value: 10}, 
  {ts: 4, value: 15}
][i]);
var streamB = xs.periodic(120).take(3).map(i => [
  {ts: 1, value: 5}, 
  {ts: 2, value: 20},
  {ts: 4, value: 25}
][i]);
var streamOut = xs.combine(
  (a, b) => {
    if (a.ts === b.ts) {
      return {ts: a.ts, value: a.value + b.value};
    } else {
      return null;
    }
  },
  streamA, streamB
).filter(x => x !== null);
streamOut.addListener({
  next: i => console.log(i),
  error: err => console.error(err),
  complete: () => console.log('completed'),
})
Output

You can jump to the latest bin by adding /latest to your URL

Dismiss x
public
Bin info
anonymouspro
0viewers