本文整理匯總了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
}