let _enable_super_gross_mode_that_will_cause_bad_things = false;
|
|
/**
|
* The global configuration object for RxJS, used to configure things
|
* like what Promise contructor should used to create Promises
|
*/
|
export const config = {
|
/**
|
* The promise constructor used by default for methods such as
|
* {@link toPromise} and {@link forEach}
|
*/
|
Promise: undefined as PromiseConstructorLike,
|
|
/**
|
* If true, turns on synchronous error rethrowing, which is a deprecated behavior
|
* in v6 and higher. This behavior enables bad patterns like wrapping a subscribe
|
* call in a try/catch block. It also enables producer interference, a nasty bug
|
* where a multicast can be broken for all observers by a downstream consumer with
|
* an unhandled error. DO NOT USE THIS FLAG UNLESS IT'S NEEDED TO BY TIME
|
* FOR MIGRATION REASONS.
|
*/
|
set useDeprecatedSynchronousErrorHandling(value: boolean) {
|
if (value) {
|
const error = new Error();
|
console.warn('DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \n' + error.stack);
|
} else if (_enable_super_gross_mode_that_will_cause_bad_things) {
|
console.log('RxJS: Back to a better error behavior. Thank you. <3');
|
}
|
_enable_super_gross_mode_that_will_cause_bad_things = value;
|
},
|
|
get useDeprecatedSynchronousErrorHandling() {
|
return _enable_super_gross_mode_that_will_cause_bad_things;
|
},
|
};
|