RxJava count() when one of two observable is not compled
I want to count items from stream
Observable
when trigger
is not completed. I want to update View by size of stream
when trigger
occurs. As long as trigger
not completed Consumer
not invoking accept()
. How I can resolve it?
Observable<Long> trigger = Observable.interval(2000L, TimeUnit.MILLISECONDS);
Observable<Long> stream = trigger
.flatMap(new Function<Long, ObservableSource<?>>() {
@Override
public ObservableSource<?> apply(Long aLong) throws Exception {
return Observable.just("A", "B", "C"); //completed observable
}
})
.count()
.toObservable();
stream.subscribe(new Consumer<Long>() {
@Override
public void accept(Long size) throws Exception {
Log.e("Elements: ", size.toString());
}
});
rx-java2
add a comment |
I want to count items from stream
Observable
when trigger
is not completed. I want to update View by size of stream
when trigger
occurs. As long as trigger
not completed Consumer
not invoking accept()
. How I can resolve it?
Observable<Long> trigger = Observable.interval(2000L, TimeUnit.MILLISECONDS);
Observable<Long> stream = trigger
.flatMap(new Function<Long, ObservableSource<?>>() {
@Override
public ObservableSource<?> apply(Long aLong) throws Exception {
return Observable.just("A", "B", "C"); //completed observable
}
})
.count()
.toObservable();
stream.subscribe(new Consumer<Long>() {
@Override
public void accept(Long size) throws Exception {
Log.e("Elements: ", size.toString());
}
});
rx-java2
add a comment |
I want to count items from stream
Observable
when trigger
is not completed. I want to update View by size of stream
when trigger
occurs. As long as trigger
not completed Consumer
not invoking accept()
. How I can resolve it?
Observable<Long> trigger = Observable.interval(2000L, TimeUnit.MILLISECONDS);
Observable<Long> stream = trigger
.flatMap(new Function<Long, ObservableSource<?>>() {
@Override
public ObservableSource<?> apply(Long aLong) throws Exception {
return Observable.just("A", "B", "C"); //completed observable
}
})
.count()
.toObservable();
stream.subscribe(new Consumer<Long>() {
@Override
public void accept(Long size) throws Exception {
Log.e("Elements: ", size.toString());
}
});
rx-java2
I want to count items from stream
Observable
when trigger
is not completed. I want to update View by size of stream
when trigger
occurs. As long as trigger
not completed Consumer
not invoking accept()
. How I can resolve it?
Observable<Long> trigger = Observable.interval(2000L, TimeUnit.MILLISECONDS);
Observable<Long> stream = trigger
.flatMap(new Function<Long, ObservableSource<?>>() {
@Override
public ObservableSource<?> apply(Long aLong) throws Exception {
return Observable.just("A", "B", "C"); //completed observable
}
})
.count()
.toObservable();
stream.subscribe(new Consumer<Long>() {
@Override
public void accept(Long size) throws Exception {
Log.e("Elements: ", size.toString());
}
});
rx-java2
rx-java2
edited Nov 12 '18 at 9:59
akarnokd
48.8k998147
48.8k998147
asked Nov 12 '18 at 9:47
MMC
1716
1716
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
Do a rolling count with scan
:
Observable<Long> trigger = Observable.interval(2000L, TimeUnit.MILLISECONDS);
Observable<Long> stream = trigger
.flatMap(new Function<Long, ObservableSource<String>>() {
@Override
public ObservableSource<String> apply(Long aLong) throws Exception {
return Observable.just("A", "B", "C"); //completed observable
}
})
.scan(0L, new BiFunction<Long, String, Long>() {
@Override public Long apply(Long a, String b) {
return a + 1;
}
})
;
stream.subscribe(new Consumer<Long>() {
@Override
public void accept(Long size) throws Exception {
Log.e("Elements: ", size.toString());
}
});
In this casesize
is amount of every item. I would like to count each time size of this Observable:Observable.just("A", "B", "C")
. In this case it should be always3
.
– MMC
Nov 12 '18 at 10:19
How about applyingcount()
on thosejust
s? "But it no longer compiles" ->flatMapSingle
.
– akarnokd
Nov 12 '18 at 11:29
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53259503%2frxjava-count-when-one-of-two-observable-is-not-compled%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
Do a rolling count with scan
:
Observable<Long> trigger = Observable.interval(2000L, TimeUnit.MILLISECONDS);
Observable<Long> stream = trigger
.flatMap(new Function<Long, ObservableSource<String>>() {
@Override
public ObservableSource<String> apply(Long aLong) throws Exception {
return Observable.just("A", "B", "C"); //completed observable
}
})
.scan(0L, new BiFunction<Long, String, Long>() {
@Override public Long apply(Long a, String b) {
return a + 1;
}
})
;
stream.subscribe(new Consumer<Long>() {
@Override
public void accept(Long size) throws Exception {
Log.e("Elements: ", size.toString());
}
});
In this casesize
is amount of every item. I would like to count each time size of this Observable:Observable.just("A", "B", "C")
. In this case it should be always3
.
– MMC
Nov 12 '18 at 10:19
How about applyingcount()
on thosejust
s? "But it no longer compiles" ->flatMapSingle
.
– akarnokd
Nov 12 '18 at 11:29
add a comment |
Do a rolling count with scan
:
Observable<Long> trigger = Observable.interval(2000L, TimeUnit.MILLISECONDS);
Observable<Long> stream = trigger
.flatMap(new Function<Long, ObservableSource<String>>() {
@Override
public ObservableSource<String> apply(Long aLong) throws Exception {
return Observable.just("A", "B", "C"); //completed observable
}
})
.scan(0L, new BiFunction<Long, String, Long>() {
@Override public Long apply(Long a, String b) {
return a + 1;
}
})
;
stream.subscribe(new Consumer<Long>() {
@Override
public void accept(Long size) throws Exception {
Log.e("Elements: ", size.toString());
}
});
In this casesize
is amount of every item. I would like to count each time size of this Observable:Observable.just("A", "B", "C")
. In this case it should be always3
.
– MMC
Nov 12 '18 at 10:19
How about applyingcount()
on thosejust
s? "But it no longer compiles" ->flatMapSingle
.
– akarnokd
Nov 12 '18 at 11:29
add a comment |
Do a rolling count with scan
:
Observable<Long> trigger = Observable.interval(2000L, TimeUnit.MILLISECONDS);
Observable<Long> stream = trigger
.flatMap(new Function<Long, ObservableSource<String>>() {
@Override
public ObservableSource<String> apply(Long aLong) throws Exception {
return Observable.just("A", "B", "C"); //completed observable
}
})
.scan(0L, new BiFunction<Long, String, Long>() {
@Override public Long apply(Long a, String b) {
return a + 1;
}
})
;
stream.subscribe(new Consumer<Long>() {
@Override
public void accept(Long size) throws Exception {
Log.e("Elements: ", size.toString());
}
});
Do a rolling count with scan
:
Observable<Long> trigger = Observable.interval(2000L, TimeUnit.MILLISECONDS);
Observable<Long> stream = trigger
.flatMap(new Function<Long, ObservableSource<String>>() {
@Override
public ObservableSource<String> apply(Long aLong) throws Exception {
return Observable.just("A", "B", "C"); //completed observable
}
})
.scan(0L, new BiFunction<Long, String, Long>() {
@Override public Long apply(Long a, String b) {
return a + 1;
}
})
;
stream.subscribe(new Consumer<Long>() {
@Override
public void accept(Long size) throws Exception {
Log.e("Elements: ", size.toString());
}
});
answered Nov 12 '18 at 10:06
akarnokd
48.8k998147
48.8k998147
In this casesize
is amount of every item. I would like to count each time size of this Observable:Observable.just("A", "B", "C")
. In this case it should be always3
.
– MMC
Nov 12 '18 at 10:19
How about applyingcount()
on thosejust
s? "But it no longer compiles" ->flatMapSingle
.
– akarnokd
Nov 12 '18 at 11:29
add a comment |
In this casesize
is amount of every item. I would like to count each time size of this Observable:Observable.just("A", "B", "C")
. In this case it should be always3
.
– MMC
Nov 12 '18 at 10:19
How about applyingcount()
on thosejust
s? "But it no longer compiles" ->flatMapSingle
.
– akarnokd
Nov 12 '18 at 11:29
In this case
size
is amount of every item. I would like to count each time size of this Observable: Observable.just("A", "B", "C")
. In this case it should be always 3
.– MMC
Nov 12 '18 at 10:19
In this case
size
is amount of every item. I would like to count each time size of this Observable: Observable.just("A", "B", "C")
. In this case it should be always 3
.– MMC
Nov 12 '18 at 10:19
How about applying
count()
on those just
s? "But it no longer compiles" -> flatMapSingle
.– akarnokd
Nov 12 '18 at 11:29
How about applying
count()
on those just
s? "But it no longer compiles" -> flatMapSingle
.– akarnokd
Nov 12 '18 at 11:29
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53259503%2frxjava-count-when-one-of-two-observable-is-not-compled%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown