mirror of
https://github.com/re-rxjs/react-rxjs.git
synced 2025-12-08 18:01:51 +00:00
chore(core-react-enhancer): tiny improvements
This commit is contained in:
parent
60a0fbda1e
commit
9e6b48acc3
@ -50,7 +50,6 @@ const reactEnhancer = <T>(source$: Observable<T>): BehaviorObservable<T> => {
|
||||
|
||||
let promise: any
|
||||
let error = EMPTY_VALUE
|
||||
let valueResult: { type: "v"; payload: any } | undefined
|
||||
const getValue = () => {
|
||||
let timeoutToken
|
||||
if (error !== EMPTY_VALUE) {
|
||||
@ -62,10 +61,10 @@ const reactEnhancer = <T>(source$: Observable<T>): BehaviorObservable<T> => {
|
||||
}
|
||||
|
||||
try {
|
||||
const latest = (source$ as BehaviorObservable<T>).getValue()
|
||||
return valueResult && Object.is(valueResult.payload, latest)
|
||||
? valueResult
|
||||
: (valueResult = { type: "v", payload: latest })
|
||||
return {
|
||||
type: "v",
|
||||
payload: (source$ as BehaviorObservable<T>).getValue(),
|
||||
}
|
||||
} catch (e) {
|
||||
if (promise) return promise
|
||||
|
||||
@ -74,11 +73,11 @@ const reactEnhancer = <T>(source$: Observable<T>): BehaviorObservable<T> => {
|
||||
type: "s",
|
||||
payload: result
|
||||
.pipe(
|
||||
filter((value) => value !== (SUSPENSE as any)),
|
||||
filter((x) => x !== (SUSPENSE as any)),
|
||||
take(1),
|
||||
tap({
|
||||
next(v) {
|
||||
value = v
|
||||
value = { type: "v", payload: v }
|
||||
},
|
||||
error(e) {
|
||||
error = { type: "e", payload: e }
|
||||
@ -92,12 +91,11 @@ const reactEnhancer = <T>(source$: Observable<T>): BehaviorObservable<T> => {
|
||||
.catch(() => {})
|
||||
.finally(() => {
|
||||
promise = undefined
|
||||
valueResult = undefined
|
||||
}),
|
||||
}
|
||||
|
||||
if (value !== EMPTY_VALUE) {
|
||||
return (valueResult = { type: "v", payload: value })
|
||||
return value
|
||||
}
|
||||
|
||||
if (error !== EMPTY_VALUE) {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user