Skip to content

NathanGrimaud/rxjs-asqueue

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Build Status Coverage Status

Rx asQueue

signature: asQueue(input: Observable[]): Observable

Turn multiple observables into a single observable, values will be emitted in the order of the input observables.

Examples

with the merge operator, once a value is emitted, it will be sent to our pipeline

const results = [{ wait: 0 }, { wait: 2000 }, { wait: 100 }, { wait: 1000 }, { wait: 3000 }];
const example = of(null);
const messages = results.map(result => example.pipe(mapTo(result.wait), delay(result.wait)));
merge(...messages)
  .pipe(
    map(value => {
      console.log(`${value}ms!`);
    })
  )
  .subscribe();

// 0ms ! ... 100ms! ... 1000ms! ... 2000ms! ... 3000ms

with the asQueue operator, we will receive the values in the order of the input observables

const results = [{ wait: 0 }, { wait: 2000 }, { wait: 100 }, { wait: 1000 }, { wait: 3000 }];
const example = of(null);
const messages = results.map(result => example.pipe(mapTo(result.wait), delay(result.wait)));
asQueue(messages)
  .pipe(
    map(value => {
      console.log(`${value}ms!`);
    })
  )
  .subscribe();

// 0ms ! ... 2000ms! ... 100ms! ... 1000ms! ... 3000ms

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published