本文整理汇总了TypeScript中@cycle/base.StreamAdapter.makeSubject方法的典型用法代码示例。如果您正苦于以下问题:TypeScript StreamAdapter.makeSubject方法的具体用法?TypeScript StreamAdapter.makeSubject怎么用?TypeScript StreamAdapter.makeSubject使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类@cycle/base.StreamAdapter
的用法示例。
在下文中一共展示了StreamAdapter.makeSubject方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。
示例1: return
return (composeFn = (_: any) => _): Stream & { proxy: ProxyFn } => {
const subject = adapter.makeSubject()
let proxyDispose: any
let targetStream: Stream
const proxyStream = subject.stream
const proxyObserver = subject.observer
proxyStream.proxy = (target: Stream) => {
if (!target || !adapter.isValidStream(target)){
throw new Error('You should provide a valid target stream to proxy')
}
if (targetStream){
throw new Error('You may provide only one target stream to proxy')
}
targetStream = composeFn(target)
proxyStream.__proxyRefs = 0
return adapter.adapt({}, (_: any, observer: Observer<any>) => {
let dispose = adapter.streamSubscribe(target, observer)
if (proxyStream.__proxyRefs++ === 0) {
proxyDispose = adapter.streamSubscribe(
targetStream, proxyObserver
)
}
return () => {
dispose()
if (--proxyStream.__proxyRefs === 0) {
proxyDispose()
proxyObserver.complete()
if (proxyStream.__onProxyDispose) {
proxyStream.__onProxyDispose()
}
}
}
})
}
return proxyStream
}