rxdart 0.3.21

rxdart #

Build Status Coverage Status Pub

Update This library no longer depends on RxJs and JS interop, while that dependency made things easy, it also meant that rxdart would be a browser lib only.

Some notes:

  • Observable is the main class, it extends Stream obviously
  • Promote a stream to observable by wrapping it => rx.observable(myStream)
  • That doesn't mean wrapping everywhere, new rx.Observable.merge(<Stream>[a, b, c, ...]); is fine
  • Subject is not ported, we already have StreamController for that

Currently supported

 // first wrap any stream
 Observable oStream = observable(myStream);
 // of course all exiting Stream opeartors (map, where, ...) are inherited, so they are not listed here
 // the following are contructors
 new Observable
     same as combineLatest,
     except instead of passing a predicate,
     you pass a Map<String, Stream>,
     the result will also be a Map, with the same keys as the above map,
     but the values will be the latest Stream values instead
     tween a value from a start value to an end value,
     over a given period of time,
     using one of 4 easing methods (linear, ease_in, ease_out, ease_in_out),
     and sample on a given interval (e.g. every 20 milliseconds)


void main() {
  List<int> codes = <int>[
      38, // up
      38, // up
      40, // down
      40, // down
      37, // left
      39, // right
      37, // left
      39, // right
      66, // b
      65  // a
  Element result = querySelector('#result');

  StreamController<KeyboardEvent> controller = new StreamController<KeyboardEvent>();
  rx.Observable<KeyboardEvent> stream = rx.observable(controller.stream);

  document.addEventListener('keyup', (KeyboardEvent event) => controller.add(event));

    .map((KeyboardEvent e) => e.keyCode )     // get the key code
    .bufferWithCount(10, 1)                   // get the last 10 keys
    .where((List<int> x) => _equal(x, codes)) // where we match

bool _equal(List<int> a, List<int> b) {

Use this package as a library

1. Depend on it

Add this to your package's pubspec.yaml file:

  rxdart: ^0.3.21

2. Install it

You can install packages from the command line:

with pub:

$ pub get


3. Import it

Now in your Dart code, you can use:

import 'package:rxdart/rxdart.dart';
Code health derived from static analysis. [more]
Weighted score of the above. [more]
Learn more about scoring.



Analysis issues and suggestions

Support Dart 2 in pubspec.yaml.

The SDK constraint in pubspec.yaml doesn't allow the Dart 2.0.0 release. For information about upgrading it to be Dart 2 compatible, please see https://dart.cn/dart-2#migration.


Package Constraint Resolved Available
Direct dependencies
Dart SDK >1.12.0