loadBy method
Implementation
Stream<Progress<Result>?> loadBy(Stream<ContentLoaderOperate> trigger) {
ContentLoaderOperate? operate;
return trigger
.doOnData((contentLoaderOperate) => operate = contentLoaderOperate)
.switchMap<Progress<Result>>((t) =>
Stream.fromFuture(this())
.map<Result>((value) => Success<C>(value))
.onErrorReturnWith((error, stackTrace) {
operate?.onError?.also((onError) {
onError(error, stackTrace);
});
return Failure(null, error, stackTrace);
})
.map<Progress<Result>>((result) => Complete(result))
.startWith(InProgress<Result>())
);
}