fix(core): catch rejected promises in convertNxExecutor (#12627)
This commit is contained in:
parent
628c9c0c36
commit
62e91f37af
@ -48,39 +48,43 @@ function toObservable<T extends { success: boolean }>(
|
||||
): Observable<T> {
|
||||
return new (require('rxjs') as typeof import('rxjs')).Observable(
|
||||
(subscriber) => {
|
||||
promiseOrAsyncIterator.then((value) => {
|
||||
if (!(value as any).next) {
|
||||
subscriber.next(value as T);
|
||||
subscriber.complete();
|
||||
} else {
|
||||
let asyncIterator = value as AsyncIterableIterator<T>;
|
||||
promiseOrAsyncIterator
|
||||
.then((value) => {
|
||||
if (!(value as any).next) {
|
||||
subscriber.next(value as T);
|
||||
subscriber.complete();
|
||||
} else {
|
||||
let asyncIterator = value as AsyncIterableIterator<T>;
|
||||
|
||||
function recurse(iterator: AsyncIterableIterator<T>) {
|
||||
iterator
|
||||
.next()
|
||||
.then((result) => {
|
||||
if (!result.done) {
|
||||
subscriber.next(result.value);
|
||||
recurse(iterator);
|
||||
} else {
|
||||
if (result.value) {
|
||||
function recurse(iterator: AsyncIterableIterator<T>) {
|
||||
iterator
|
||||
.next()
|
||||
.then((result) => {
|
||||
if (!result.done) {
|
||||
subscriber.next(result.value);
|
||||
recurse(iterator);
|
||||
} else {
|
||||
if (result.value) {
|
||||
subscriber.next(result.value);
|
||||
}
|
||||
subscriber.complete();
|
||||
}
|
||||
subscriber.complete();
|
||||
}
|
||||
})
|
||||
.catch((e) => {
|
||||
subscriber.error(e);
|
||||
});
|
||||
})
|
||||
.catch((e) => {
|
||||
subscriber.error(e);
|
||||
});
|
||||
}
|
||||
|
||||
recurse(asyncIterator);
|
||||
|
||||
return () => {
|
||||
asyncIterator.return();
|
||||
};
|
||||
}
|
||||
|
||||
recurse(asyncIterator);
|
||||
|
||||
return () => {
|
||||
asyncIterator.return();
|
||||
};
|
||||
}
|
||||
});
|
||||
})
|
||||
.catch((err) => {
|
||||
subscriber.error(err);
|
||||
});
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
@ -51,39 +51,43 @@ function toObservable<T extends { success: boolean }>(
|
||||
): Observable<T> {
|
||||
return new (require('rxjs') as typeof import('rxjs')).Observable(
|
||||
(subscriber) => {
|
||||
promiseOrAsyncIterator.then((value) => {
|
||||
if (!(value as any).next) {
|
||||
subscriber.next(value as T);
|
||||
subscriber.complete();
|
||||
} else {
|
||||
let asyncIterator = value as AsyncIterableIterator<T>;
|
||||
promiseOrAsyncIterator
|
||||
.then((value) => {
|
||||
if (!(value as any).next) {
|
||||
subscriber.next(value as T);
|
||||
subscriber.complete();
|
||||
} else {
|
||||
let asyncIterator = value as AsyncIterableIterator<T>;
|
||||
|
||||
function recurse(iterator: AsyncIterableIterator<T>) {
|
||||
iterator
|
||||
.next()
|
||||
.then((result) => {
|
||||
if (!result.done) {
|
||||
subscriber.next(result.value);
|
||||
recurse(iterator);
|
||||
} else {
|
||||
if (result.value) {
|
||||
function recurse(iterator: AsyncIterableIterator<T>) {
|
||||
iterator
|
||||
.next()
|
||||
.then((result) => {
|
||||
if (!result.done) {
|
||||
subscriber.next(result.value);
|
||||
recurse(iterator);
|
||||
} else {
|
||||
if (result.value) {
|
||||
subscriber.next(result.value);
|
||||
}
|
||||
subscriber.complete();
|
||||
}
|
||||
subscriber.complete();
|
||||
}
|
||||
})
|
||||
.catch((e) => {
|
||||
subscriber.error(e);
|
||||
});
|
||||
})
|
||||
.catch((e) => {
|
||||
subscriber.error(e);
|
||||
});
|
||||
}
|
||||
|
||||
recurse(asyncIterator);
|
||||
|
||||
return () => {
|
||||
asyncIterator.return();
|
||||
};
|
||||
}
|
||||
|
||||
recurse(asyncIterator);
|
||||
|
||||
return () => {
|
||||
asyncIterator.return();
|
||||
};
|
||||
}
|
||||
});
|
||||
})
|
||||
.catch((err) => {
|
||||
subscriber.error(err);
|
||||
});
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user