芝麻web文件管理V1.00
编辑当前文件:/home/rejoandoctor/medicine.joruridoctor.com/node_modules/rxjs/src/internal/util/lift.ts
import { Observable } from '../Observable'; import { Subscriber } from '../Subscriber'; import { OperatorFunction } from '../types'; import { isFunction } from './isFunction'; /** * Used to determine if an object is an Observable with a lift function. */ export function hasLift(source: any): source is { lift: InstanceType
['lift'] } { return isFunction(source?.lift); } /** * Creates an `OperatorFunction`. Used to define operators throughout the library in a concise way. * @param init The logic to connect the liftedSource to the subscriber at the moment of subscription. */ export function operate
( init: (liftedSource: Observable
, subscriber: Subscriber
) => (() => void) | void ): OperatorFunction
{ return (source: Observable
) => { if (hasLift(source)) { return source.lift(function (this: Subscriber
, liftedSource: Observable
) { try { return init(liftedSource, this); } catch (err) { this.error(err); } }); } throw new TypeError('Unable to lift unknown Observable type'); }; }