profile
viewpoint
ReactiveX ReactiveX http://reactivex.io Reactive Extensions for Async Programming

ReactiveX/RxJava 41708

RxJava – Reactive Extensions for the JVM – a library for composing asynchronous and event-based programs using observable sequences for the Java VM.

ReactiveX/rxjs 20930

A reactive programming library for JavaScript

ReactiveX/RxAndroid 18746

RxJava bindings for Android

ReactiveX/RxGo 2353

Reactive Extensions for the Go language.

ReactiveX/rxdart 2196

The Reactive Extensions for Dart

ReactiveX/RxCpp 1955

Reactive Extensions for C++

ReactiveX/learnrx 1372

A series of interactive exercises for learning Microsoft's Reactive Extensions Library for Javascript.

ReactiveX/IxJS 697

The Interactive Extensions for JavaScript

ReactiveX/RxJavaFX 440

RxJava bindings for JavaFX

ReactiveX/RxClojure 321

RxJava bindings for Clojure

startedReactiveX/RxAndroid

started time in 2 hours

startedReactiveX/RxJava

started time in 2 hours

startedReactiveX/RxSwift

started time in 2 hours

startedReactiveX/rxdart

started time in 5 hours

startedReactiveX/RxJava

started time in 5 hours

startedReactiveX/RxJava

started time in 5 hours

fork KozakNazar/RxCpp

Reactive Extensions for C++

fork in 5 hours

startedReactiveX/RxPY

started time in 6 hours

issue commentReactiveX/RxCpp

Issue with Boost.Asio scheduler and RxCpp

Thanks for the repo with a repro.. this was much easier to look into!

I put my changes in a PR here https://github.com/david-hoze/RxCppAsioReproduction/pull/1

in short -

  • avoid subjects
  • prefer operators
  • rxcpp defaults to single-thread safety ( following the pay-only-for-what-you-use principal)
david-hoze

comment created time in 7 hours

issue commentReactiveX/RxSwift

Test target does not build when RxCocoa Swift Package is used

Since my unit tests don't use the UI, I just made them logic tests for now, so they're isolated from the app and don't have duplicate symbols with it.

michallaskowski

comment created time in 7 hours

pull request commentReactiveX/RxJava

3.x: Add timeInterval & timestamp to M/S

Codecov Report

Merging #6874 into 3.x will decrease coverage by <.01%. The diff coverage is 100%.

Impacted file tree graph

@@             Coverage Diff              @@
##                3.x    #6874      +/-   ##
============================================
- Coverage     98.27%   98.27%   -0.01%     
- Complexity     6502     6522      +20     
============================================
  Files           731      733       +2     
  Lines         46968    47044      +76     
  Branches       6420     6424       +4     
============================================
+ Hits          46159    46231      +72     
- Misses          291      296       +5     
+ Partials        518      517       -1
Impacted Files Coverage Δ Complexity Δ
...rc/main/java/io/reactivex/rxjava3/core/Single.java 100% <100%> (ø) 170 <8> (+8) :arrow_up:
.../internal/operators/single/SingleTimeInterval.java 100% <100%> (ø) 2 <2> (?)
...a3/internal/operators/maybe/MaybeTimeInterval.java 100% <100%> (ø) 2 <2> (?)
src/main/java/io/reactivex/rxjava3/core/Maybe.java 100% <100%> (ø) 198 <8> (+8) :arrow_up:
...in/java/io/reactivex/rxjava3/schedulers/Timed.java 94.73% <100%> (-5.27%) 12 <0> (-1)
...l/operators/observable/ObservableFlatMapMaybe.java 85.91% <0%> (-8.46%) 2% <0%> (ø)
...perators/single/SingleFlatMapIterableFlowable.java 94.16% <0%> (-2.5%) 2% <0%> (ø)
.../internal/disposables/ListCompositeDisposable.java 98% <0%> (-2%) 34% <0%> (-1%)
...ctivex/rxjava3/internal/util/QueueDrainHelper.java 97.22% <0%> (-1.39%) 56% <0%> (-1%)
... and 20 more

Continue to review full report at Codecov.

Legend - Click here to learn more Δ = absolute <relative> (impact), ø = not affected, ? = missing data Powered by Codecov. Last update 26dacd7...710b963. Read the comment docs.

akarnokd

comment created time in 8 hours

pull request commentReactiveX/rxjs

refactor(forkJoin): remove redundant forkJoin spec

Could you please rebase this onto master so that the Node types are updated, the TypeScript version 3 tests pass and this can be merged?

martinsik

comment created time in 8 hours

PR opened ReactiveX/RxJava

3.x: Add timeInterval & timestamp to M/S 3.x Enhancement

Add timeInterval and timestamp operators (4 overloads each). to Maybe and Single.

Related #6852

image image image image image image image image

+1112 -32

0 comment

12 changed files

pr created time in 8 hours

push eventReactiveX/rxjs

Artem Halas

commit sha 165103e19194a29c2410b231a61a6f01645607d3

test(dtslint): add ajax (#5012)

view details

push time in 8 hours

PR merged ReactiveX/rxjs

test(dtslint): add ajax

Description: This PR adds dtslint tests for ajax.

Related issue (if exists): #4093

+28 -0

0 comment

1 changed file

artem-galas

pr closed time in 8 hours

GollumEvent

push eventReactiveX/rxjs

Zachary DeRose

commit sha 7914eb70baeb818a2cac126bd878df6e5b34cd44

test(operator-concatAll): use run mode (#5144) * test(operator-concatAll): use run mode * fix(operator-concatAll): whitespace * fix: using prettier to format + address nits

view details

push time in 8 hours

PR merged ReactiveX/rxjs

test(operator-concatAll): use run mode

<!-- Thank you very much for your pull request!

If your PR is the addition of a new operator, please make sure all these boxes are ticked with an x:

  • [ ] Add the operator to Rx
  • [ ] It must have a -spec.ts tests file covering the canonical corner cases, with marble diagram tests
  • [ ] If possible, write a asDiagram test case too, for PNG diagram generation purposes
  • [ ] The spec file should have a type definition test at the end of the spec to verify type definition for various use cases
  • [ ] The operator must be documented in JSDoc style in the implementation file, including also the PNG marble diagram image
  • [ ] The operator should be listed in doc/operators.md in a category of operators
  • [ ] The operator should also be documented. See Documentation Guidelines.
  • [ ] It should also be inserted in the operator decision tree file doc/decision-tree-widget/tree.yml
  • [ ] You may need to update MIGRATION.md if the operator differs from the corresponding one in RxJS v4 -->

Description:

Uses run mode for concatAll operator tests.

Related issue (if exists):

+392 -296

5 comments

1 changed file

ZackDeRose

pr closed time in 8 hours

startedReactiveX/rxdart

started time in 9 hours

push eventReactiveX/RxJava

Travis CI

commit sha 8ae39c2fba050f7476ac7cba493e0c4a2c17b5f8

Travis build: 6469 for snapshot

view details

push time in 10 hours

push eventReactiveX/RxJava

David Karnok

commit sha 26dacd72f1929c78d84da41ec80dc1ae3996c9f9

3.x: Add many fromX operators + marbles (#6873)

view details

push time in 10 hours

PR merged ReactiveX/RxJava

3.x: Add many fromX operators + marbles 3.x Enhancement

Add a cross section of from operators (present fromAction .. fromSingle) :

Operator F O M S C
<a name='fromAction'></a>fromAction present present present absent <sup title='Never empty.'>(23)</sup> present
<a name='fromCompletable'></a>fromCompletable present present present absent <sup title='Always error.'>(72)</sup> absent <sup title='Use wrap().'>(73)</sup>
<a name='fromMaybe'></a>fromMaybe present present absent <sup title='Use wrap().'>(73)</sup> present present
<a name='fromObservable'></a>fromObservable present absent <sup title='Use wrap().'>(73)</sup> present present present
<a name='fromPublisher'></a>fromPublisher present present present present present
<a name='fromRunnable'></a>fromRunnable present present present absent <sup title='Never empty.'>(23)</sup> present
<a name='fromSingle'></a>fromSingle present present present absent <sup title='Use wrap().'>(73)</sup> present

Related #6852

image image image image image image image image image image image image image image image image image image image

+3032 -247

1 comment

44 changed files

akarnokd

pr closed time in 10 hours

startedReactiveX/rxjs

started time in 10 hours

issue commentReactiveX/RxPY

Prefer nonlocal or array in closure

This thread has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.

erikkemperman

comment created time in 10 hours

pull request commentReactiveX/RxJava

3.x: Add many fromX operators + marbles

Codecov Report

Merging #6873 into 3.x will decrease coverage by 0.01%. The diff coverage is 96.58%.

Impacted file tree graph

@@             Coverage Diff              @@
##                3.x    #6873      +/-   ##
============================================
- Coverage     98.27%   98.26%   -0.02%     
- Complexity     6446     6503      +57     
============================================
  Files           722      731       +9     
  Lines         46783    46968     +185     
  Branches       6401     6420      +19     
============================================
+ Hits          45977    46153     +176     
- Misses          289      298       +9     
  Partials        517      517
Impacted Files Coverage Δ Complexity Δ
...xjava3/internal/operators/maybe/MaybeToSingle.java 100% <ø> (ø) 3 <0> (ø) :arrow_down:
...in/java/io/reactivex/rxjava3/core/Completable.java 100% <ø> (ø) 128 <0> (ø) :arrow_down:
...internal/operators/maybe/MaybeFromCompletable.java 100% <ø> (ø) 3 <0> (ø) :arrow_down:
src/main/java/io/reactivex/rxjava3/core/Maybe.java 100% <100%> (ø) 190 <2> (+3) :arrow_up:
...operators/completable/CompletableToObservable.java 100% <100%> (ø) 2 <1> (ø) :arrow_down:
...l/operators/completable/CompletableFromAction.java 100% <100%> (ø) 5 <0> (+1) :arrow_up:
.../main/java/io/reactivex/rxjava3/core/Flowable.java 100% <100%> (ø) 588 <10> (+10) :arrow_up:
...nternal/operators/flowable/FlowableFromAction.java 100% <100%> (ø) 6 <6> (?)
...nal/operators/flowable/FlowableFromObservable.java 100% <100%> (ø) 2 <1> (ø) :arrow_down:
...ain/java/io/reactivex/rxjava3/core/Observable.java 100% <100%> (ø) 558 <5> (+5) :arrow_up:
... and 48 more

Continue to review full report at Codecov.

Legend - Click here to learn more Δ = absolute <relative> (impact), ø = not affected, ? = missing data Powered by Codecov. Last update 53ba435...55548f2. Read the comment docs.

akarnokd

comment created time in 12 hours

PR opened ReactiveX/RxJava

3.x: Add many fromX operators + marbles 3.x Enhancement

Add a cross section of from operators (present fromAction .. fromSingle) :

Operator F O M S C
<a name='fromAction'></a>fromAction present present present absent <sup title='Never empty.'>(23)</sup> present
<a name='fromCompletable'></a>fromCompletable present present present absent <sup title='Always error.'>(72)</sup> absent <sup title='Use wrap().'>(73)</sup>
<a name='fromMaybe'></a>fromMaybe present present absent <sup title='Use wrap().'>(73)</sup> present present
<a name='fromObservable'></a>fromObservable present absent <sup title='Use wrap().'>(73)</sup> present present present
<a name='fromPublisher'></a>fromPublisher present present present present present
<a name='fromRunnable'></a>fromRunnable present present present absent <sup title='Never empty.'>(23)</sup> present
<a name='fromSingle'></a>fromSingle present present present absent <sup title='Use wrap().'>(73)</sup> present

Related #6852

image image image image image image image image image image image image image image image image image image image

+3032 -247

0 comment

44 changed files

pr created time in 13 hours

GollumEvent
GollumEvent

fork wsmaragh/RxSwift

Reactive Programming in Swift

fork in 14 hours

issue openedReactiveX/RxJava

3.x: Create a tool that scans the java sources and checks marble dimensions

Create a manually runnable tool (in internal.util) that walks through the java sources of the base classes, parses out the <img width="" height="" src=""/>, downloads the referenced image and verifies that height is set properly.

More specifically, round(640.0/image.width * image.height) and prints a fake stacktrace element to the particular line and the right amount. It is recommended the download is somewhat rate-limited (1 per 100ms) because the sheer number of images. The same reason applies why this isn't an unit test to be. Use TestHelper.findSource() to locate the source java.

created time in 14 hours

startedReactiveX/RxJava

started time in 15 hours

startedReactiveX/rxjs

started time in 15 hours

push eventReactiveX/RxJava

Travis CI

commit sha 291642da115e56c5d133d026fed255b1b0240b77

Travis build: 6467 for snapshot

view details

push time in 15 hours

startedReactiveX/RxSwift

started time in 15 hours

push eventReactiveX/RxJava

David Karnok

commit sha ea8ab3bbd5617af2e0f5342c72a42a0eeae941ee

3.x: Add Maybe.dematerialize (#6871)

view details

push time in 15 hours

PR merged ReactiveX/RxJava

3.x: Add Maybe.dematerialize 3.x Enhancement

Add the dematerialize operator to Maybe to be in sync with the other classes.

Related #6852

image

+272 -1

1 comment

4 changed files

akarnokd

pr closed time in 15 hours

startedReactiveX/RxSwift

started time in 15 hours

startedReactiveX/RxScala

started time in 15 hours

startedReactiveX/rxjs

started time in 17 hours

startedReactiveX/rxjs

started time in 17 hours

pull request commentReactiveX/RxJava

3.x: Add Maybe.dematerialize

Codecov Report

Merging #6871 into 3.x will increase coverage by 0.01%. The diff coverage is 100%.

Impacted file tree graph

@@             Coverage Diff              @@
##                3.x    #6871      +/-   ##
============================================
+ Coverage     98.27%   98.29%   +0.01%     
- Complexity     6446     6447       +1     
============================================
  Files           722      723       +1     
  Lines         46783    46817      +34     
  Branches       6401     6404       +3     
============================================
+ Hits          45977    46019      +42     
+ Misses          289      282       -7     
+ Partials        517      516       -1
Impacted Files Coverage Δ Complexity Δ
...rc/main/java/io/reactivex/rxjava3/core/Single.java 100% <ø> (ø) 160 <0> (ø) :arrow_down:
...3/internal/operators/maybe/MaybeDematerialize.java 100% <100%> (ø) 2 <2> (?)
src/main/java/io/reactivex/rxjava3/core/Maybe.java 100% <100%> (ø) 188 <1> (+1) :arrow_up:
...l/operators/observable/ObservableFlatMapMaybe.java 91.54% <0%> (-5.64%) 2% <0%> (ø)
.../operators/flowable/FlowableBlockingSubscribe.java 93.02% <0%> (-4.66%) 10% <0%> (-1%)
...ctivex/rxjava3/internal/util/QueueDrainHelper.java 97.22% <0%> (-2.78%) 56% <0%> (-2%)
.../internal/disposables/ListCompositeDisposable.java 98% <0%> (-2%) 34% <0%> (-1%)
...ternal/operators/completable/CompletableMerge.java 95.94% <0%> (-1.36%) 2% <0%> (ø)
...a3/internal/operators/flowable/FlowableCreate.java 96.11% <0%> (-1.3%) 6% <0%> (ø)
...ava3/internal/operators/maybe/MaybeMergeArray.java 96.04% <0%> (-1.13%) 6% <0%> (ø)
... and 17 more

Continue to review full report at Codecov.

Legend - Click here to learn more Δ = absolute <relative> (impact), ø = not affected, ? = missing data Powered by Codecov. Last update 53ba435...f41fb2e. Read the comment docs.

akarnokd

comment created time in 18 hours

PR opened ReactiveX/rxjs

test: add test for #5105

<!-- Thank you very much for your pull request!

If your PR is the addition of a new operator, please make sure all these boxes are ticked with an x:

  • [ ] Add the operator to Rx
  • [ ] It must have a -spec.ts tests file covering the canonical corner cases, with marble diagram tests
  • [ ] If possible, write a asDiagram test case too, for PNG diagram generation purposes
  • [ ] The spec file should have a type definition test at the end of the spec to verify type definition for various use cases
  • [ ] The operator must be documented in JSDoc style in the implementation file, including also the PNG marble diagram image
  • [ ] The operator should be listed in doc/operators.md in a category of operators
  • [ ] The operator should also be documented. See Documentation Guidelines.
  • [ ] It should also be inserted in the operator decision tree file doc/decision-tree-widget/tree.yml
  • [ ] You may need to update MIGRATION.md if the operator differs from the corresponding one in RxJS v4 -->

Description:

This PR adds a failing - but skipped - test for the bug reported in #5105 - which cannot be easily fixed.

The problem is that the subject isn't seen as a safe/trusted subscriber because the interop source won't see the per-package Symbol that identifies the subject as trusted.

And that means that the subject will be 'cloned' so that an unsubscribe method can be added to it:

https://github.com/ReactiveX/rxjs/blob/f8a487617d6eb96b6f702cc1546c0cac59927d4b/src/internal/Subscriber.ts#L189-L193

And that means the the subject's original state will remain unchanged.

Related issue: #5105

+34 -1

0 comment

2 changed files

pr created time in 18 hours

PR opened ReactiveX/RxJava

3.x: Add Maybe.dematerialize 3.x Enhancement

Add the dematerialize operator to Maybe to be in sync with the other classes.

Related #6852

image

+272 -1

0 comment

4 changed files

pr created time in 18 hours

issue commentReactiveX/rxjs

BehaviorSubject.getValue() always returns initial value if subscribed to observable from Webpack library

This is a bug, but it cannot easily be fixed. The problem is that the subject isn't seen as a safe/trusted subscriber because the interop source won't see the per-package Symbol that identifies the subject as trusted.

And that means that the subject will be 'cloned' so that an unsubscribe method can be added to it:

https://github.com/ReactiveX/rxjs/blob/f8a487617d6eb96b6f702cc1546c0cac59927d4b/src/internal/Subscriber.ts#L189-L193

And that means the the subject's original state will remain unchanged - the bug you reported.

es-repo

comment created time in 18 hours

GollumEvent

push eventReactiveX/RxJava

Travis CI

commit sha dc92f162c42e00250e559c767095b51779847a42

Travis build: 6464 for snapshot

view details

push time in 18 hours

issue commentReactiveX/RxKotlin

RxJava 3 support

Hello, support will be added soon.

cesards

comment created time in 18 hours

push eventReactiveX/RxJava

Travis CI

commit sha bf7b41b66a0424fb532ef63e8c402f29d9e1f97c

Travis build: 6463 for snapshot

view details

push time in 18 hours

push eventReactiveX/RxJava

akarnokd

commit sha 53ba4352c447562ccbba507f4d4f5493a07ab889

Refresh operator-matrix

view details

push time in 19 hours

GollumEvent

push eventReactiveX/RxJava

akarnokd

commit sha 611bb3f04dd99bfb141500f304d7a0c44fbfd5db

Fix minor JavaDocs syntax errors

view details

push time in 19 hours

push eventReactiveX/RxJava

David Karnok

commit sha 2fafcb03dd3e420b184608b13a40a5a3482f3cd7

3.x: Add Maybe/Single/Completable switchOnNext & switchOnNextDelayError (#6870) * 3.x: Add M/S/C switchOnNext[DelayError] * Fix wording of the Completable variant

view details

push time in 19 hours

PR merged ReactiveX/RxJava

3.x: Add Maybe/Single/Completable switchOnNext & switchOnNextDelayError 3.x Enhancement

Add the missing switchOnNext and switchOnNextDelayError operators, which are essentially delegated to the respective Flowable::switchMapX operators with identity mapping.

Related #6852

image image image image image image

+728 -1

0 comment

9 changed files

akarnokd

pr closed time in 19 hours

issue commentReactiveX/rxjs

Subjects from windowToggle continue forever

Can the example be simplified? I don't understand why the zone1Down, zone1Move and zone1Up observables are merged here. There will be two subscription to the zone1Down: for the source in the merge and for the opening notifier to windowToggle.

Why is this necessary? What behaviour were you expecting to see here?

const zone1Window = merge(zone1Down, zone1Move, zone1Up)
    .pipe(windowToggle(zone1Down, (_: any) => zone1Up))
    .pipe(share())
SephVelut

comment created time in 19 hours

startedReactiveX/RxJava

started time in 19 hours

PR opened ReactiveX/RxJava

3.x: Add Maybe/Single/Completable switchOnNext & switchOnNextDelayError 3.x Enhancement

Add the missing switchOnNext and switchOnNextDelayError operators, which are essentially delegated to the respective Flowable::switchMapX operators with identity mapping.

Related #6852

image image image image image image

+728 -1

0 comment

9 changed files

pr created time in 19 hours

issue closedReactiveX/rxjs

Subject.unsubscribe() doesn't trigger dispose functions

Bug Report

Current Behavior Dispose handlers added to a chain via operators (eg. finalize()) or calling Subscription.add() on a subscription object returned from Subject.subscribe() will be triggered when calling Subscription.unsubscribe().

However, Subjects have unsubscribe() method as well. But calling this method will never trigger dispose handlers. It only empties the inner list of observers.

Maybe this is the intended behavior but it's a little confusing that the method is called unsubscribe() but works differently than Subscription.unsubscribe().

Reproduction

  • REPL or Repo link: https://stackblitz.com/edit/rxjs-zo5fs6
import { Subject } from 'rxjs'; 
import { finalize } from 'rxjs/operators';

const subject = new Subject();
const sub = subject
  .pipe(
    finalize(() => console.log('done')),
  )
  .subscribe();

sub.add(() => console.log('done 2'));

// This won't trigger any dispose handlers.
subject.unsubscribe();

Expected behavior Subject.unsubscribe() will call dispose handlers or if this is the expected behavior maybe it could have a doc block describing its use-case.

Environment

  • Runtime: any
  • RxJS version: 6.5.2

closed time in 19 hours

martinsik

issue commentReactiveX/rxjs

Subject.unsubscribe() doesn't trigger dispose functions

Closing this because unsubscription isn't arbitrarily effected by sources. Sinks unsubscribe themselves upon receipt of complete or error notifications.

martinsik

comment created time in 19 hours

issue closedReactiveX/rxjs

scheduler.schedule is not a function

Bug Report

Current Behavior Some RXjs code of mine is throwing an internal error of some kind.

scheduleArray.js:8 Uncaught TypeError: scheduler.schedule is not a function
    at Observable._subscribe (scheduleArray.js:8)
    at Observable._trySubscribe (Observable.js:43)
    at Observable.subscribe (Observable.js:29)
    at subscribeToResult (subscribeToResult.js:13)
    at MergeMapSubscriber._innerSub (mergeMap.js:74)
    at MergeMapSubscriber._tryNext (mergeMap.js:68)
    at MergeMapSubscriber._next (mergeMap.js:51)
    at MergeMapSubscriber.Subscriber.next (Subscriber.js:53)
    at MergeMapSubscriber.notifyNext (mergeMap.js:84)
    at InnerSubscriber._next (InnerSubscriber.js:15)

Putting a break point in reveals that the value of 'scheduler' is a numeric 1. I'll admit that the code is a little on the complicated side with some streams essentially even forming a loop.
There is basically alot of rxjs code, but it is probably worth mentioning that nowhere am I making use of schedulers.

I have also been on the look out for anywhere where I might be passing in the wrong number of arguments to rxjs functions, but have not found anything yet.

Reproduction

  • Dont know how to reproduce it yet, still trying to figure out that myself. It's a large and private codebase. When I start breaking things and shifting things around a bit, the error seems to occur at different times/locations, making it hard to pin point what's causing it.

Environment

  • Runtime: Chrome v79.0.3945.88
  • RxJS version: 6

closed time in 19 hours

devblazer

issue commentReactiveX/rxjs

scheduler.schedule is not a function

Closing this as this isn't action able without a repro and, TBH, it sounds like a problem in the application code. Are you using TypeScript?

Anyway, this:

the value of 'scheduler' is a numeric 1.

Suggest that this could be the problem:

I have also been on the look out for anywhere where I might be passing in the wrong number of arguments to rxjs functions, but have not found anything yet.

I would suggest working backwards to see where scheduleArray is called. If you look at the source for fromArray, you'll see that there would be an avenue there for scheduleArray to be called with a value of 1 for the scheduler argument.

devblazer

comment created time in 19 hours

issue closedReactiveX/rxjs

Provide a pipe operator that delays between each emitted value

Feature Request

Provide a Delay pipe operator that operates on each item emitted from the observable, versus a one time delay at the start.

Is your feature request related to a problem? Please describe.

Applications want to present items at a fixed rate for a variety of reasons, such as allowing a human to read each item before the next item is displayed, or to throttle input to some process. What frustrates users is that Delay only delays the start of emission, not between each emission.

Describe the solution you'd like

A pipe operator that achieves the goal: DelayNext or some such thing.

Describe alternatives you've considered

Google the solution again each time the problem arises, and provide a custom implement for each project, or hope team members find it if put in a npm package.

A Stack Overflow answer that solves the problem while revealing that it's not an obvious solution.

https://stackoverflow.com/questions/53959911/angular-6-delay-the-loop

(If this is new operator request) describe reason it should be core operator

A common task for users is to provide a fixed delay between each item emitted from an observable. The existing Delay operator only delays the start of the emission, followed by a firehose of elements with no delay. There are many requests for a solution on popular forums and most incorrectly direct users to the Delay operator.

Additional context Add any other context or screenshots about the feature request here.

closed time in 20 hours

cogitaria-admin

startedReactiveX/rxjs

started time in 21 hours

push eventReactiveX/RxJava

Travis CI

commit sha a3dcfef64158b4caa935bdaa6455061e8d17d7ef

Travis build: 6461 for snapshot

view details

push time in 21 hours

push eventReactiveX/rxjs

Robert Stoll

commit sha f8a487617d6eb96b6f702cc1546c0cac59927d4b

docs(forkJoin): add `the` and other improvements (#5264) * docs(forkJoin): add `the` and other improvements * typo + wrap resultSelector into ``

view details

push time in 21 hours

PR merged ReactiveX/rxjs

docs(forkJoin): add `the` and other improvements

<!-- Thank you very much for your pull request!

If your PR is the addition of a new operator, please make sure all these boxes are ticked with an x:

  • [ ] Add the operator to Rx
  • [ ] It must have a -spec.ts tests file covering the canonical corner cases, with marble diagram tests
  • [ ] If possible, write a asDiagram test case too, for PNG diagram generation purposes
  • [ ] The spec file should have a type definition test at the end of the spec to verify type definition for various use cases
  • [ ] The operator must be documented in JSDoc style in the implementation file, including also the PNG marble diagram image
  • [ ] The operator should be listed in doc/operators.md in a category of operators
  • [ ] The operator should also be documented. See Documentation Guidelines.
  • [ ] It should also be inserted in the operator decision tree file doc/decision-tree-widget/tree.yml
  • [ ] You may need to update MIGRATION.md if the operator differs from the corresponding one in RxJS v4 -->

Description:

Related issue (if exists):

+19 -19

3 comments

1 changed file

robstoll

pr closed time in 21 hours

pull request commentReactiveX/rxjs

docs(forkJoin): add `the` and other improvements

@cartant makes sense to do the removent in a different PR. Let me know in case you wish more corrections in this PR

robstoll

comment created time in 21 hours

push eventReactiveX/RxJava

David Karnok

commit sha 0ed3572c8961dfdfa7dc73dd0419b5f789d1d1ad

3.x: Add S/C retryUntil + marbles (#6869)

view details

push time in 21 hours

PR merged ReactiveX/RxJava

3.x: Add Single/Completable retryUntil + marbles 3.x Documentation Enhancement

retryUntil was missing from Single and Completable.

Added marble for Maybe as well.

Related #6852, #5806

image image image

+175 -0

1 comment

6 changed files

akarnokd

pr closed time in 21 hours

pull request commentReactiveX/RxJava

3.x: Add Single/Completable retryUntil + marbles

Codecov Report

Merging #6869 into 3.x will increase coverage by 0.04%. The diff coverage is 100%.

Impacted file tree graph

@@             Coverage Diff              @@
##                3.x    #6869      +/-   ##
============================================
+ Coverage     98.25%   98.29%   +0.04%     
- Complexity     6430     6433       +3     
============================================
  Files           719      719              
  Lines         46746    46750       +4     
  Branches       6401     6401              
============================================
+ Hits          45929    45953      +24     
+ Misses          293      283      -10     
+ Partials        524      514      -10
Impacted Files Coverage Δ Complexity Δ
src/main/java/io/reactivex/rxjava3/core/Maybe.java 100% <ø> (ø) 185 <0> (ø) :arrow_down:
...in/java/io/reactivex/rxjava3/core/Completable.java 100% <100%> (ø) 126 <1> (+1) :arrow_up:
...rc/main/java/io/reactivex/rxjava3/core/Single.java 100% <100%> (ø) 158 <1> (+1) :arrow_up:
...eactivex/rxjava3/processors/BehaviorProcessor.java 96.55% <0%> (-2.47%) 50% <0%> (ø)
...rnal/operators/observable/ObservableSwitchMap.java 91.57% <0%> (-2.11%) 3% <0%> (ø)
...ternal/operators/observable/ObservablePublish.java 97.29% <0%> (-1.81%) 16% <0%> (-1%)
...ternal/operators/flowable/FlowableSubscribeOn.java 96.61% <0%> (-1.7%) 2% <0%> (ø)
...internal/operators/flowable/FlowableSwitchMap.java 94.39% <0%> (-1.41%) 3% <0%> (ø)
...ernal/operators/flowable/FlowableFromIterable.java 95.18% <0%> (-1.07%) 5% <0%> (ø)
...ernal/operators/flowable/FlowableFlatMapMaybe.java 95.31% <0%> (-1.05%) 2% <0%> (ø)
... and 13 more

Continue to review full report at Codecov.

Legend - Click here to learn more Δ = absolute <relative> (impact), ø = not affected, ? = missing data Powered by Codecov. Last update 320a675...fab5b58. Read the comment docs.

akarnokd

comment created time in 21 hours

startedReactiveX/learnrx

started time in a day

PR opened ReactiveX/RxJava

3.x: Add Single/Completable retryUntil + marbles 3.x Documentation Enhancement

retryUntil was missing from Single and Completable.

Added marble for Maybe as well.

Related #6852

image image image

+175 -0

0 comment

6 changed files

pr created time in a day

startedReactiveX/rxjs

started time in a day

GollumEvent

pull request commentReactiveX/rxjs

docs(forkJoin): add `the` and other improvements

That's the sort of thing that I'd like to see in a separate PR. If it's going to be removed here, it should be removed elsewhere, too. I wouldn't remove it in this PR.

robstoll

comment created time in a day

startedReactiveX/RxSwift

started time in a day

pull request commentReactiveX/rxjs

docs(forkJoin): add `the` and other improvements

I saw now that using a resultSelector is deprecated. Maybe we should remove the documentation for it?

robstoll

comment created time in a day

startedReactiveX/RxKotlin

started time in a day

startedReactiveX/RxAndroid

started time in a day

PR opened ReactiveX/rxdart

Add distinct_by
+47 -0

0 comment

3 changed files

pr created time in a day

fork sannminwin/learnrx

A series of interactive exercises for learning Microsoft's Reactive Extensions Library for Javascript.

fork in a day

fork yongjhih/rxdart

The Reactive Extensions for Dart

http://reactivex.io

fork in a day

startedReactiveX/rxjs

started time in a day

startedReactiveX/RxJava

started time in a day

Pull request review commentReactiveX/rxjs

docs(index): fix docs Rx.Scheduler.async is deprecated

 export function bindCallback(callbackFunc: Function, scheduler?: SchedulerLike):  * }  *  * const boundSyncFn = bindCallback(iCallMyCallbackSynchronously);- * const boundAsyncFn = bindCallback(iCallMyCallbackSynchronously, null, Rx.Scheduler.async);+ * const boundAsyncFn = bindCallback(iCallMyCallbackSynchronously, null, Rx.asyncScheduler);

The Rx should be removed and asyncScheduler should to be added to the import:

import { bindCallback, asyncScheduler } from 'rxjs';
luckyscript

comment created time in a day

PR opened ReactiveX/rxjs

chore: revert SchedulerLike interface changes

<!-- Thank you very much for your pull request!

If your PR is the addition of a new operator, please make sure all these boxes are ticked with an x:

  • [ ] Add the operator to Rx
  • [ ] It must have a -spec.ts tests file covering the canonical corner cases, with marble diagram tests
  • [ ] If possible, write a asDiagram test case too, for PNG diagram generation purposes
  • [ ] The spec file should have a type definition test at the end of the spec to verify type definition for various use cases
  • [ ] The operator must be documented in JSDoc style in the implementation file, including also the PNG marble diagram image
  • [ ] The operator should be listed in doc/operators.md in a category of operators
  • [ ] The operator should also be documented. See Documentation Guidelines.
  • [ ] It should also be inserted in the operator decision tree file doc/decision-tree-widget/tree.yml
  • [ ] You may need to update MIGRATION.md if the operator differs from the corresponding one in RxJS v4 -->

Description:

This PR reverts the changes made to the SchedulerLike interface. As discussed in the core-team Slack channel - with @MichaelJamesParsons - the changes broke user-land schedulers. (Angular Zone-related schedulers are not uncommon.)

Although the typing of the SchedulerLike interface in arguably incorrect, it might be best to leave it as-is and delay any changes to the scheduler infrastructure until version 8.

The reversion has necessitated the liberal use of as any assertions, as all of the dispatch/work functions assume a state that is not undefined. This problem was hidden until the strict typescript option was enabled. I did try a few other approaches - including using a conditional type instead of the as any assertion - but they didn't work out.

Related issue: None

+72 -57

0 comment

30 changed files

pr created time in a day

push eventReactiveX/rxjs

Michael-James

commit sha fc4b8919a89e3ff71b2ac58d38e53ad34775e6eb

Replace deprecated sinon.sandbox.create() factory method (#5267)

view details

push time in a day

PR merged ReactiveX/rxjs

Replace deprecated sinon sandbox factory method

Description: Migrate from the deprecated sinon.sandbox.create() to sinon.createSandbox(). This PR upstreams internal changes to unblock Google's migration to sinon 8.1.

+14 -14

0 comment

7 changed files

MichaelJamesParsons

pr closed time in a day

PR opened ReactiveX/rxjs

Replace deprecated sinon sandbox factory method

Description: Migrate from the deprecated sinon.sandbox.create() to sinon.createSandbox(). This PR upstreams internal changes to unblock Google's migration to sinon 8.1.

+14 -14

0 comment

7 changed files

pr created time in a day

startedReactiveX/RxSwift

started time in a day

push eventReactiveX/rxjs

Robert Stoll

commit sha a0bc359ebfed3005fac007f121ad9bf6a7ff6f59

docs(defer): improve documentation and use EMPTY (#5266)

view details

push time in a day

PR merged ReactiveX/rxjs

docs(defer): improve documentation and use EMPTY

<!-- Thank you very much for your pull request!

If your PR is the addition of a new operator, please make sure all these boxes are ticked with an x:

  • [ ] Add the operator to Rx
  • [ ] It must have a -spec.ts tests file covering the canonical corner cases, with marble diagram tests
  • [ ] If possible, write a asDiagram test case too, for PNG diagram generation purposes
  • [ ] The spec file should have a type definition test at the end of the spec to verify type definition for various use cases
  • [ ] The operator must be documented in JSDoc style in the implementation file, including also the PNG marble diagram image
  • [ ] The operator should be listed in doc/operators.md in a category of operators
  • [ ] The operator should also be documented. See Documentation Guidelines.
  • [ ] It should also be inserted in the operator decision tree file doc/decision-tree-widget/tree.yml
  • [ ] You may need to update MIGRATION.md if the operator differs from the corresponding one in RxJS v4 -->

Description: Use EMPTY instead of deprecated function empty()

Related issue (if exists): #5258

+9 -9

0 comment

1 changed file

robstoll

pr closed time in a day

startedReactiveX/RxPY

started time in a day

push eventReactiveX/RxJava

Travis CI

commit sha 378a56a8e27524daac37b8ab61c0909cc05eb0c0

Travis build: 6459 for snapshot

view details

push time in a day

push eventReactiveX/RxJava

Travis CI

commit sha 905dfd676d2aff04d839653fd0c3165fe4bc8a05

Travis build: 6458 for snapshot

view details

push time in a day

push eventReactiveX/rxjs

Robert Stoll

commit sha 3d717de9de10fe1f40fe468f63a3670a34ff6ed4

docs(concat): improve short description (#5263)

view details

push time in a day

PR merged ReactiveX/rxjs

docs(concat): improve short description

<!-- Thank you very much for your pull request!

If your PR is the addition of a new operator, please make sure all these boxes are ticked with an x:

  • [ ] Add the operator to Rx
  • [ ] It must have a -spec.ts tests file covering the canonical corner cases, with marble diagram tests
  • [ ] If possible, write a asDiagram test case too, for PNG diagram generation purposes
  • [ ] The spec file should have a type definition test at the end of the spec to verify type definition for various use cases
  • [ ] The operator must be documented in JSDoc style in the implementation file, including also the PNG marble diagram image
  • [ ] The operator should be listed in doc/operators.md in a category of operators
  • [ ] The operator should also be documented. See Documentation Guidelines.
  • [ ] It should also be inserted in the operator decision tree file doc/decision-tree-widget/tree.yml
  • [ ] You may need to update MIGRATION.md if the operator differs from the corresponding one in RxJS v4 -->

Description:

Related issue (if exists):

+1 -1

0 comment

1 changed file

robstoll

pr closed time in a day

Pull request review commentReactiveX/rxjs

docs(forkJoin): add `the` and other improvements

 export function forkJoin<T>(...sources: ObservableInput<T>[]): Observable<T[]>;  * ![](forkJoin.png)  *  * `forkJoin` is an operator that takes any number of input observables which can be passed either as an array- * or a dictionary of input observables. If no input observables are provided, resulting stream will complete+ * or a dictionary of input observables. If no input observables are provided, then the resulting stream will complete  * immediately.  *  * `forkJoin` will wait for all passed observables to emit and complete and then it will emit an array or an object with last  * values from corresponding observables.  *- * If you pass an array of `n` observables to the operator, resulting- * array will have `n` values, where first value is the last thing emitted by the first observable,- * second value is the last thing emitted by the second observable and so on.+ * If you pass an array of `n` observables to the operator, then the resulting+ * array will have `n` values, where the first value is the last one emitted by the first observable,+ * second value is the last one emitted by the second observable and so on.  *- * If you pass a dictionary of observables to the operator, resulting- * objects will have the same keys as the dictionary passed, with their last values they've emitted+ * If you pass a dictionary of observables to the operator, then the resulting+ * objects will have the same keys as the dictionary passed, with their last values they hadve emitted

Typo: "hadve"

robstoll

comment created time in a day

Pull request review commentReactiveX/rxjs

docs(forkJoin): add `the` and other improvements

 export function forkJoin<T>(...sources: ObservableInput<T>[]): Observable<T[]>;  * ![](forkJoin.png)  *  * `forkJoin` is an operator that takes any number of input observables which can be passed either as an array- * or a dictionary of input observables. If no input observables are provided, resulting stream will complete+ * or a dictionary of input observables. If no input observables are provided, then the resulting stream will complete  * immediately.  *  * `forkJoin` will wait for all passed observables to emit and complete and then it will emit an array or an object with last  * values from corresponding observables.  *- * If you pass an array of `n` observables to the operator, resulting- * array will have `n` values, where first value is the last thing emitted by the first observable,- * second value is the last thing emitted by the second observable and so on.+ * If you pass an array of `n` observables to the operator, then the resulting+ * array will have `n` values, where the first value is the last one emitted by the first observable,+ * second value is the last one emitted by the second observable and so on.  *- * If you pass a dictionary of observables to the operator, resulting- * objects will have the same keys as the dictionary passed, with their last values they've emitted+ * If you pass a dictionary of observables to the operator, then the resulting+ * objects will have the same keys as the dictionary passed, with their last values they hadve emitted  * located at the corresponding key.  *  * That means `forkJoin` will not emit more than once and it will complete after that. If you need to emit combined- * values not only at the end of lifecycle of passed observables, but also throughout it, try out {@link combineLatest}+ * values not only at the end of the lifecycle of passed observables, but also throughout it, try out {@link combineLatest}  * or {@link zip} instead.  *- * In order for resulting array to have the same length as the number of input observables, whenever any of- * that observables completes without emitting any value, `forkJoin` will complete at that moment as well+ * In order for the resulting array to have the same length as the number of input observables, whenever any of+ * the given observables completes without emitting any value, `forkJoin` will complete at that moment as well  * and it will not emit anything either, even if it already has some last values from other observables.- * Conversely, if there is an observable that never completes, `forkJoin` will never complete as well,- * unless at any point some other observable completes without emitting value, which brings us back to- * the previous case. Overall, in order for `forkJoin` to emit a value, all observables passed as arguments+ * Conversely, if there is an observable that never completes, `forkJoin` will never complete either,+ * unless at any point some other observable completes without emitting a value, which brings us back to+ * the previous case. Overall, in order for `forkJoin` to emit a value, all given observables  * have to emit something at least once and complete.  *- * If any input observable errors at some point, `forkJoin` will error as well and all other observables- * will be immediately unsubscribed.+ * If any given observable errors at some point, `forkJoin` will error as well and immediately unsubscribe+ * from the other observables.  *- * Optionally `forkJoin` accepts project function, that will be called with values which normally- * would land in emitted array. Whatever is returned by project function, will appear in output- * observable instead. This means that default project can be thought of as a function that takes- * all its arguments and puts them into an array. Note that project function will be called only- * when output observable is supposed to emit a result.+ * Optionally `forkJoin` accepts a resultSelector function, that will be called with values which normally

resultSelector should be formatted as code: resultSelector

robstoll

comment created time in a day

push eventReactiveX/rxjs

Robert Stoll

commit sha 4de6c811885a42cc208653e99a56e2b3855d6505

docs(generate): add `the` and other improvements (#5265) * docs(generate): add `the` and other improvements * fix trailing whitespace

view details

push time in a day

PR merged ReactiveX/rxjs

docs(generate): add `the` and other improvements

Related issue (if exists): #5260

+23 -23

0 comment

1 changed file

robstoll

pr closed time in a day

more